原创 模块化编程(转帖)

2008-5-9 06:53 4038 4 4 分类: 处理器与DSP

 


模块化编程

2007-04-22 11:28




一、准备工作(一劳永逸,模块化编程!


1.     注册为TI 成员



TI公司提供的技术资料都需要会员的身份才可以下载,为了你工作的方便,建议你如果需要TI器件的技术资料,就赶快注册为TI的成员吧!



2.     获得TMS<?XML:NAMESPACE PREFIX = ST1 />320F2812的所有技术资料



为了快速的获得某个器件相关的技术资料,你可以在上图的“Enter Part Number”中输入具体的器件型号,比如我们输入“TMS320F2812,点击“GO”后,就可以获得TMS320F2812的所有技术资料,包括数据手册、产品信息、价格/封装/样片、质量与无铅数据报告、技术文档、用户指南、参考设计、开发工具与软件、相关产品等等。应有尽有,你想得到的TI都有,你没有想到的TI也为你准备好了!


建议将上面能够下载下来的资料统统下载下来!有空的时候拿来研究一下,保证有好处!在“Tools & Software”这一栏里TI给出了与TMS320F2812相关的算法,大部分是免费的!除了电机算法只给出了库函数,其他基本上给出了库函数和底层程序代码,并且TI给出的底层程序大部分是汇编编写的,所以代码运行效率是非常高的!


3.     安装TI的算法


在“Tools & Software”这一栏里将下载到的TI头文件和外设使用例子C281x C/C++ Header Files and Peripheral Examples解压缩并且按照默认路径安装后,我们可以在C:\tidcs\c28\dsp281x\v100找到TMS320F2812头文件。对于TI给出的大部分关于28x的算法,都可以在C:\tidcs找到。在C:\tidcs\c28\dsp281x\v100中包含4个文件夹和一个readme,如下图所示:



    在具体编程前需要了解各个文件夹中的每个文件的具体用途,要知道“什么时候用哪个文件,为什么要用这个文件!”下图是每个文件夹包含的文件:



接下来将对编程时使用较多的文件做一个说明:


1)  C:\tidcs\c28\dsp281x\v100\doc中包含一个PDF文档,此文档是有关头文件使用的说明,建议有空多看一下!


2)  C:\tidcs\c28\dsp281x\v100\DSP281x_common\cmd中包含4CMD文件,用来定义片上和片外空间,每个CMD用途不一样,在后面的编程中具体讨论。


3)  C:\tidcs\c28\dsp281x\v100\DSP281x_common\include中包含4个头文件,其中


DSP281x_DefaultIsr声明了所有281x的中断服务函数,比如声明定时器0中断函数:interrupt void  TINT0_ISR(void)DSP281x_Examples.h调用了一个软件延时函数,一般用得较少;DSP281x_GlobalPrototypes.h为全局函数原型,例如:extern void InitAdc(void)为初始化ADC函数原型;DSP281x_SWPrioritizedIsrLevels.h给出了一个中断优先级定义的示范。


4)  C:\tidcs\c28\dsp281x\v100\DSP281x_common\source中包含了系统和片上外设的初始化代码,这个在我们编程的时候使用较多的文件。


5)  C:\tidcs\c28\dsp281x\v100\DSP281x_headers\cmd中包含2CMD,用来分配外设寄存器空间,其中DSP281x_Headers_nonBIOS在不使用 DSP/BIOS情况下使用,DSP281x_Headers_nonBIOS在使用DSP/BIOS情况下使用。


6)  C:\tidcs\c28\dsp281x\v100\DSP281x_headers\include用结构体和共用体定义了所有的281x的寄存器,只要使用281x就需要这些文件。


7)  C:\tidcs\c28\dsp281x\v100\DSP281x_headers\source#pragma DATA_SECTION定义数据段,例如用#pragma DATA_SECTION(AdcRegs,"AdcRegsFile")ADC寄存器分配空间。


4.     建立几个专用的文件夹


为了更好的使用TI提供的算法,真正做到模块化编程,提高我们的工作效率,我们需要在PC机上建立一个专用的工作文件夹,如E:\jacky281x,然后在jacky281x文件夹下建立几个专用的文件夹,如下图所示:



1)  cmd中存放各种链接命令文件


2)  data中存放各种数据文件


3)  gel中存放各种通用扩展语言(gel)


4)  headers存放各种头文件


5)  initia存放各种初始化程序


6)  lib存放各种库文件,比如C语言运行支持库rts2800.lib


7)  main用来存放用户应用程序


5.     进行文件的转移


按照下述进行文件转移:


1)  C:\tidcs\c28\dsp281x\v100\DSP281x_common\cmd4CMD



以及C:\tidcs\c28\dsp281x\v100\DSP281x_headers\cmd2CMD



复制到E:\jacky281x\cmd


2)  C:\tidcs\c28\dsp281x\v100\DSP281x_common\include4个头文件



以及C:\tidcs\c28\dsp281x\v100\DSP281x_headers\include16个头文件



复制到E:\jacky281x\headers中,其中DSP281x_DefaultIsr这个文件在上面的2个文件夹中都存在,复制其中1个就可以了!


3)  C:\tidcs\c28\dsp281x\v100\DSP281x_common\source16个文件



以及C:\tidcs\c28\dsp281x\v100\DSP281x_headers\source1个文件



复制到E:\jacky281x\initia中。


4)  找到CCS安装路径,比如D:\ti2000,然后将D:\ti2000\c2000\cgtools\lib



复制到E:\jacky281x\lib中。


以上转移文件的做法,只是本人总结的一种行之有效的方法,它的方便性和好处在后面的编程中大家可以体验出来


文章评论0条评论)

登录后参与讨论
我要评论
0
4
关闭 站长推荐上一条 /2 下一条