一个完整工程文件的构成
总的说一个完整的工程需要由库文件(.lib),头文件(.h),源文件(.c)和CMD文件(.CMD)组成,缺一不可。至于各文件内容将在以后中详细说明
2812的库文件--文件夹地址 C:\CCStudio_v3.3\C2000\cgtools\lib\rts2800.lib
rts2800_ml.lib --- 大存储器模式
头文件
头文件的作用是定义了2812内部寄存器的数据结构。头文件一般情况下不需要修改,如果你需要定义一些在整个工程内都具有作用域的全局变量的时候,可以在头文件中定义这些变量,具体的方法我们以后在例程或项目实践中应该会有介绍。
C文件(主函数)
ADC.C ——外设AD的初始化函数,与外设AD相关
CodeStartBranch.asm——引导过程中屏蔽看门狗定时器 。
DSP28_CpuTimers.C——CPU定时器的初始化和配置函数,与CPU的定时器相关
DefaultIsr_nonBIOS.C——包含了2812所有的中断函数,写中断时,只要将程序写在对应的函数内就可以,大大保证了中断的成功率。
DelayUs.asm——延时微秒
DSP28x_GlobalVariableDefs.C——全局变量的定义,定义了2812的寄存器,中断向量表等内容。
Ev.C——外设EV的初始化函数,与外设EV相关。
Gpio.C——GPIO的初始化函数,只和GPIO相关。
Main_nonBIOS.c——主函数
PieCtrl_nonBIOS.C——PIE初始化函数,和中断相关,很重要。
PieVect_nonBIOS.C——PIE中断向量表定义以及初始化,很重要。
SetDBGIER.asm——real time仿真
SysCtrl.C——系统初始化,主要对开门狗,时钟等模块进行初始化,以保证2812正常工作,非常重要。
Watchdog.C——看门狗初始化
Xintf.C——外部接口的初始化函数。
通过上面的分析我们可以看到几个文件非常重要,因此大家每次新建工程的时候,就把这些未编辑过的文件复制过来。其他的外设相关的文件,您这个工程中涉及到哪个外设,您就把这个外设相关的源文件复制过来,一起加入工程。
CMD文件
以.CMD为扩展名的文件,这个文件的作用是用来分配存储空间的。由于DSP编译器的编译结果是未定位的,DSP也没有操作系统来定位执行代码,DSP系统的配置需求也不尽相同,因此我们根据实际的需求,自己定义代码的存储位置。打个通俗的比喻,就是我们有一个仓库,现在需要把货物存放到仓库里面去,为了便于日后取用货物,我们将货物分门别类,然后把它们存放到指定的位置去。把哪些货物放到哪个位置的规则,就是我们的CMD文件的内容。
CMD文件又分成两种。一种是分配RAM空间的--微计算机模式(仿真模式)---XMP/MC`=0,用来将程序
load到RAM内进行调试,因为我们大部分时间都是在调试程序,所以多用这类CMD,另一种是分配FLASH空间-----
微处理器模式---XMP/MC`=1,当程序调试完毕后,需要将其烧写到FLASH内部进行固化,这个时侯我们
就需要使用这类CMD文件了。
其中DSP281x_Headers_nonBIOS.cmd---用于分配编译产生的各个段至存储器
F2812_EzDSP_RAM_lnk.cmd ---用于将281x的外设寄存器结构产生的数据段映射至对应的存储器空间
以上2个CMD文件均为仿真模式下无BIOS的CMD文件
CMD文件内容将在以后详细解释
第二课课后
1. 什么是GEL文件?GEL文件的作用是什么呢?
答:GEL是通用扩展语言(General Extension Language)是一种解释语言,类似于C语言。GEL函数可以用来扩展CC的功能,方便用户调试程序。CCS提供丰富的内嵌GEL函数,用户也可以定义自己的GEL函数。在处理器属性的GEL文件窗内为每个处理器选择用户的GEL文件(扩展名为 .gel)
GEL文件用于初始化DSP。GEL在CCS下有一个菜单,可以根据DSP的对象不同,可以用gel来调用一些菜单命令,对DSP的存储器进行配置,设置不同的初始化程序。
2. Lib文件内部究竟是什么内容,我们自己能编辑LIB文件吗
答:.lib是库文件,rts.lib是TI提供的运行时支持库,如果是C代码写的源程序,必须要包含该库。该库由TI公司做好了,放在CCS的cgtools\lib中,源代码TI网站可以下载。但是我们无法查看.编辑TI所提供的库文件内容
我们也可以添加自己的库,可在newproject中新建