TMS320F280049C主控的DSP入门设计(学习笔记一) 搭建可移植的CCS工程
前言
本篇笔记将介绍如何搭建可移植的CCS工程,以便于开发TMS320F280049C主控的DSP入门设计。本篇笔记将详细介绍如何创建CCS工程、添加源文件和库文件、配置编译选项等步骤。
一、工程文件的复制
CCS新建空白工程
首先打开CCS软件,点击project->New CCS Project,并按照所需功能自行配置工程名、芯片等信息。
除此之外,在Project type and tool-chain中配置Output foemat为eabi(ELF)
点击Finish后弹出代码编辑器如下:
此时,我们所选择的工作文件夹目录下应有下列文件:
拷贝支持文件进入工程文件夹
首先,进入C2000Ware的默认下载文件夹,如:D:\ti\c2000\C2000Ware_5_01_00_00(笔者为5.01版本,同时,本文出现的所有文件地址均为笔者自己工作环境下的地址)。并找到:
D:\ti\c2000\C2000Ware_5_01_00_00\device_support\f28004x\common
此文件夹下为F280049的DSP支持文件,接下来对该文件夹内文件进行复制,并粘贴到工作文件夹中。
- 首先,将source整个文件夹复制到工作文件夹中。
- 再将D:\ti\c2000\C2000Ware_5_01_00_00\device_support\f28004x\headers\source文件夹下的文件复制到现在工程文件夹下的source中
- 将D:\ti\c2000\C2000Ware_5_01_00_00\device_support\f28004x\common中的include文件夹全部复制到工程文件夹中。
- 再将D:\ti\c2000\C2000Ware_5_01_00_00\device_support\f28004x\headers\include中的所有文件复制到工作文件夹的include文件夹下
- 将D:\ti\c2000\C2000Ware_5_01_00_00\device_support\f28004x\common\cmd中的四个cmd文件复制到工程文件夹。
接下来对库函数进行复制,首先找到路径地址为D:\ti\c2000\C2000Ware_5_01_00_00\driverlib\f28004x\driverlib的文件夹,该文件夹中含有两个文件夹和.c、.h文件(库函数文件)
首先,对该文件夹下.h文件进行复制,并粘贴到include文件夹中。
- 再对.c文件进行复制,此时可以先在工作文件夹中创建文件夹“C_library”,然后将.c文件全部粘贴到该文件夹下。
- 最后将剩余的两个文件夹复制到工程文件夹中,到此,库文件复制完毕。
添加数学运算库及f28004x_headers_nonbios.cmd文件
找到D:\ti\c2000\C2000Ware_5_01_00_00\libraries\math\FPUfastRTS\c28\lib和D:\ti\ccs1250\ccs\tools\compiler\ti-cgt-c2000_22.6.1.LTS\lib(该文件夹为下载CCS后的文件夹),将该文件夹下复制数学运算库到工程文件夹中
再对f28004x_headers_nonbios.cmd文件进行添加
找到D:\ti\c2000\C2000Ware_5_01_00_00\device_support\f28004x\headers\cmd文件夹,对该文件进行复制粘贴。
删除多余文件,整理库文件
由于使用eabi输出,所以可将ccs中与COFF输出相关的文件都删除掉。
二 、对文件进行编辑修改
1.删除source文件夹f28004x_usdelay.asm文件中函数声明的下划线。这步主要是为了适应eabi输出的需要,也即函数名前不加下划线。
修改前:
1 | .def _F28x_usDelay |
修改后:
1 | .def F28x_usDelay |
2.include文件夹下的f28004x_lin.h文件需要修改一个变量名,该变量名可以任意修改,修改原因是命名重复。
修改前:
1 | bp_16 IDLE:1; |
修改后:
1 | bp_16 LIN_IDLE:1; |
3.include文件夹下的f28004x_globalprototypes.h和source文件夹的f28004x_sysctrl.c均需要修改IDLE函数名,该变量名可以任意修改,修改原因也是命名重复。
修改前:
1 | void IDLE(void); //(f28004x_globalprototypes.h) |
修改后:
1 | void IIDLE(void); //(f28004x_globalprototypes.h) |
三、从RAM执行程序时的软件配置
此时已经形成了完整的CCS工程文件夹,下面将对工程文件进行索引,而一般debug时希望工程从RAM中进行运行,所以在这里进行RAM中运行的配置。
首先,右键项目浏览器的项目名,打开Properties(属性栏),设置成Debug,这里名字可以任意修改。
后续添加文件路径的时候会涉及到一些缩写,这些缩写在如下位置做了定义:
添加索引路径
右键点击项目浏览器中的项目名,打开Properties(属性)。找到Include Options。按照下图中操作,创建相对路径。直接在对话框中输入 ${PROJECT_ROOT}/include,表示工程文件夹中的include文件夹(绝对路径)。
添加数学库文件路径
同样右键点击项目浏览器中的项目名,打开Properties(属性)进行设置。加入下列路径。
${PROJECT_ROOT}/rts2800_fpu32_eabi.lib
${PROJECT_ROOT}/rts2800_fpu32_fast_supplement_eabi.lib
其中默认的库文件是libc.a,根据本文开头提到的官网文档,可以直接删除。
快速运行库rts2800_fpu32_fast_supplement.lib是rts2800_fpu32.lib的一个函数子集,它是对rts2800_fpu32.lib中一些函数进行重写,提高运算速度,所以添加是有次序要求,需要进行设置如下:
Link order中添加这两个库,排序rts2800_fpu32_fast_supplement.lib在前rts2800_fpu32.lib在后
启用FPU和TMU
同样右键点击项目浏览器中的项目名,打开Properties(属性)进行设置。 关于编译器–fp_mode的设置等信息可以参考文献[4]的2.3节。
目前不推荐启用–idiv_support,在本工程中启用该选项会导致程序无法正确运行。
四、总结
到此,CCS的TMS320F280049C主控模板文件创建完毕。
下节将进行仿真器的配置以及程序下载流程。