本工程以CCS6.0下新建TMS320F28335工程为例,其他系列处理器工程搭建类似,参考本例即可。
工程搭建用到的F2833x TI官方库文件 下载链接
也可直接参考笔者搭建好CCS6.0的工程 下载链接
所建工程能够实现完全可移植,即任意拷贝到其他位置或电脑都能直接编译(需导入工程)。之后就可以延续使用此工程,只需更改Project工程名,按自己的需要添加部分文件或库。(具体参考下面的详细说明)
1. 首先点击project->New CCS Project
2. 选择器件和创建工程名 (路径为默认工作空间,可根据自己的实际情况更改)
点击finish,得到工程列表如下:
工程文件夹下的文件如下:
3. 接下来,在工程文件夹下创建几个文件夹(给各文件分类存储,便于管理)
Cmd文件夹:用来存储所必须的cmd的文件,cmd文件是编译完成之后链接各个目标文件时,用来指
示各个数据、符号等是如何划分到各个段,以及每个段所使用的存储空间的。
FWlib文件夹: 固件库文件夹,再在其中建立两个子文件夹:Include文件夹和Source文件夹
Include文件夹: 用于存放TI官方的写好的头文件
Source文件夹: 用于存放TI官方写好的源文件
Libraries文件夹:用于存放处理器所用到的库文件
USER 文件夹: 用于存放用户自己写的头文件,源文件以及main.c文件
完成后如下:
4. 添加文件到工程:
接下来,我们需要拷贝以下文件或文件夹备用:(为了以后方便使用,我们把它都放在自己新建的一个文件夹“TI官方库文件”中备用)
注:首先确保自己的电脑上安装了ControlSUTE软件或C2000Ware(这两个软件TI官网都可免费下载,其中C2000Ware较新,更新到2017,我们接下来工程的搭建所需的文件都来自C2000Ware软件中所带的库)
首先我们按照以下路径标注路径(具体根据自己软件的安装路径,标注路径是相同的),找到下面两个文件夹拷贝到“TI官方库文件”文件夹中备用:
然后按下面路径,拷贝下面两个文件到“TI官方库文件/lib文件夹下”
其中:
rts2800_ml.lib库文件:C/C++大内存模式运行支持库,其中有大量浮点运算处理的函数,而rts2800.lib没有,rts2800_ml.lib和rts2800.lib对应,rts2800_ml.lib用的是大存储模式,在需要烧写FLASH时必须用这个库.
rts2800_fpu32.lib库文件:用于FPU目标的C / C ++运行时对象库,(F28335中支持FPU浮点运算)
如果程序中有三角函数或开根号等运算,推荐用fastRTS库或者IQmath库来计算,所以我们把FPUfastRTS文件夹和IQmath文件夹也拷贝过来备用。(注:此工程暂时用不到,故没有添加进工程,如以后需要,从“TI官方库文件”文件夹中添加进工程即可,添加方式和和上面两个库rts2800_ml.lib和rts2800_fpu32.lib一样,下面将会介绍)
接下来添加文件到工程,首先我们把“TI官方库文件/(common和headers)/include”文件夹下所有“.h”文件都拷贝到我们所搭建工程的“Fwlib/Include”文件夹下,(补充(之前掉写了):并把“TI官方库文件/(common和headers)/source”文件夹下所有“.c”文件和“.asm”文件都拷贝到我们所搭建工程的“Fwlib/Source”文件夹下),然后把库文件rts2800_ml.lib和rts2800_fpu32.lib拷贝到Libraries文件夹下。最后再把搭建工程下的28335_RAM_lnk.cmd文件和“TI官方库文件/(common和headers)/cmd”文件夹中的F28335.cmd和DSP2833x_Headers_nonBIOS.cmd文件拷贝到工程Cmd文件夹下。完成之后CCS6.0 IDE会自动将新添加的文件加到项目浏览器中,效果如下图:
文件功能说明:
cmd文件的选择则根据运行模式选择:
在线仿真模式:使用28335_RAM_lnk.cmd文件
Flsah烧写模式:使用F28335.cmd文件
DSP2833x_Headers_nonBIOS.cmd:无操作系统时使用
DSP2833x_Headers_BIOS.cmd :有操作系统时使用
到此,基本文件的添加就完成了。
5. 完成工程文件的添加,先不要编译。此时编译的话会出现很多错误,因为我们工程下的Include文件夹下的头文件,以及Libraries文件夹下库文件还需要添加索引路径。
首先右键点击项目浏览器中的项目名,打开Properties(属性)
上述第(4)步Workspace选项是相对路径,File sysem..是绝对路径,如果选择File sysem..来确定路径,当工程移植到非此时默认的workplace工作空间,就又会提示错误,故此最好选择Workspace选项。然后选中Include文件夹,点击确定,效果如下:
然后可以看到工程浏览器中工程Includes下多出了刚才添加的路径:
接下来我们添加库文件的路径,同样右键点击项目浏览器中的项目名,打开Properties(属性)
第(3)步添加我们工程“Libraries”文件夹下的库文件,第(4)步把“Libraries”文件夹路径也添加进来,同样选择Workspace相对路径。
6. 配置仿真器:
右键点击工程名,选择New—>TargetConfiguration File,File name取名任意,这里取为F28335.ccxml,点击Finish。
然后我们选择自己配套所使用的仿真器,这里使用的是TIDSP-XDS100V2型号仿真器,
板子及设备选择:TMS320F28335,完成后点击Save保存。
7. 为了是工程层次更清晰以及便于管理,我们对一些文件的位置进行调整:
以程序模块化的思想,我们把用户自己写的源文件,头文件以及main.c文件放在我们事先建立的“USER”文件夹里,首先是main.c文件,直接在工程浏览器下,拖动main.c文件到“USER”文件夹,然后右键点击工程下的“USER”文件夹新建LED.c和LED.h文件到“USER”文件夹中。
更新(2019.8.13)//开始// :
LED文件是为了驱动板载LED灯,实现一个完整的项目并能够方便下载到DSP开发板上验证,而更重要的我们还需要新建一个“System.c”文件和“System.h”文件,用来“配置并初始化系统时钟,GPIO及相关寄存器,中断等”,这部分是每一个DSP项目工程所必不可少的,一般需要我们自己配置实现,不过没有特殊需求,一般情况下 所有外设驱动程序或项目,按下图配置即可,不用做任何更改,只需要把头文件“System.h”包含到“main.c”中,并在main函数中进行初始化。具体实现可参考笔者搭建好的工程模板。
文件夹下总体效果如下图:
【注】若需要验证其它外设驱动程序或项目,添加自己编写好的外设“*.c”和‘*.h’文件即可。
添加文件方法:直接拷贝自己编写好的外设“*.c”和‘*.h’文件到“USER”文件夹下(一般工程CCS6.0 IDE会自动添加文件到工程浏览器对应文件夹下),若没有自动添加,右键点击工程下的“USER”文件夹,选择“Add Files”添加文件到USER文件夹中。
更新(2019.8.13)://结束//
接下来,我们把刚刚建立的仿真文件“F28335.ccxml”直接拖动到“TargeConfigs”文件夹下
到此,我们的工程搭建就基本完成了。
8. 完成最后调整与配置:
现在让我们编译一下工程,在工程浏览器下右键点击工程名,选中Build Project,编译工程
(说明:工程第一次编译时,可以用Build Project,等同于工具栏上的“小锤子图标”,但只能在工程进行了实际更改的情况下才能编译,也就是只编译更改的部分文件,否则不会编译成功。Clean Project主要作用就是把编译好的Output等文件删除,激活eclipse的自动编译。Rebuild Project作用,重新编译整个工程)
工程编译完成后,“Console”以及“Problems”窗口提示很多错误
在上图中看到几乎提示的都是重定义错误,找到重定义文件,分别为:
DSP2833x_SWPrioritizedPieVect.c :软件中断优先级设置
DSP2833x_SWPrioritizedDefaultIsr.c :软件中断优先级缺省值(即设置失效)
这些我们暂时也用不到,删除这两个文件即可。
还有F28335.cmd文件中的提示:内存已经被指定。
我们在前面也已经提到28335_RAM_lnk.cmd文件用于在线仿真,F28335.cmd文件用于Flsah烧写,两个文件功能不同,同时只能存在一个,但我们还是放在Cmd文件夹下,因为程序进行烧录固化时必须要用,但留着又提示错误,怎么办呢?此时我们可以暂时在编译时忽略此文件,在工程浏览器Cmd文件夹下选中F28335.cmd文件右键点击,选择“Exclude for Build”(即忽略编译此文件)操作
9. 最后说明:
搭建可移植工程的目的是什么,一是增强我们对工程框架以及各个文件功能的理解,二就是方便以后我们使用——不用以后每次都要重新创建工程。着实节约开发时间。在CSS3.3中我们把工程拷贝到“MyProjects”文件夹下改个文件夹名就行了,可是CCS6.0中工程与文件都与路径有关,而且CCS6.0识别的不是工程文件夹的名字,而是具体的工程文件“ .Project ”,而这个文件名是不可以直接重命名的。这下我们怎么办呢?其实,CCS6.0工程下,移植创建新工程更加方便,不止文件夹的名字可以更改回来,连工程名也可以更改。想要实现你的要求,你可以在CCS工程浏览器下选择你的工程,右键—>copy,然后再工程浏览器空白处点击—>Paste(粘贴)在弹出的Copy Project对话框中填写你的新工程名和保存路径就可以了。
而如果你要移植到别的电脑或工作空间,就必须要导入工程了,然后又可以按上一个方法方便的创建新的工程了。点击工具栏—>Project—>Import CCS Project..,选择好要导入的工程,点击确定即可。