DSP

关于DSP的CCS6.0平台下的工程搭建(完全可移植)

2019-07-13 10:41发布

  本工程以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.librts2800.lib对应,rts2800_ml.lib用的是大存储模式,在需要烧写FLASH时必须用这个库.   rts2800_fpu32.lib库文件:用于FPU目标的C / C ++运行时对象库,(F28335中支持FPU浮点运算)     如果程序中有三角函数或开根号等运算,推荐用fastRTS库或者IQmath库来计算,所以我们把FPUfastRTS文件夹和IQmath文件夹也拷贝过来备用。(注:此工程暂时用不到,故没有添加进工程,如以后需要,从“TI官方库文件”文件夹中添加进工程即可,添加方式和和上面两个库rts2800_ml.librts2800_fpu32.lib一样,下面将会介绍) 接下来添加文件到工程,首先我们把“TI官方库文件/commonheaders/include”文件夹下所有文件都拷贝到我们所搭建工程的“Fwlib/Include”文件夹下,然后把库文件rts2800_ml.librts2800_fpu32.lib拷贝到Libraries文件夹下。最后再把搭建工程下的28335_RAM_lnk.cmd文件和“TI官方库文件/commonheaders/cmd”文件夹中的F28335.cmdDSP2833x_Headers_nonBIOS.cmd文件拷贝到工程Cmd文件夹下。完成之后CCS6.0会自动将新添加的文件加到项目浏览器中,效果如下图:   文件功能说明: 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 FileFile name取名任意,这里取为F28335.ccxml,点击Finish 然后我们选择自己配套所使用的仿真器,这里使用的是TIDSP-XDS100V2型号仿真器, 板子及设备选择:TMS320F28335,完成后点击Save保存。     7.      为了是工程层次更清晰以及便于管理,我们对一些文件的位置进行调整: 以程序模块化的思想,我们把用户自己写的源文件,头文件以及main.c文件放在我们事先建立的“USER”文件夹里首先是main.c文件,直接在工程浏览器下,拖动main.c文件到“USER”文件夹,然后右键点击工程下的“USER”文件夹新建LED.c和LED.h文件到“USER”文件夹中。 接下来,我们把仿真文件夹直接拖动到“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”(即忽略编译此文件)操作  
然后重新进行编译,0错误,0警告,工程搭建完成。   9.      最后说明: 搭建可移植工程的目的是什么,一是增强我们对工程框架以及各个文件功能的理解,二就是方便以后我们使用——不用以后每次都要重新创建工程。着实节约开发时间。CSS3.3中我们把工程拷贝到“MyProjects”文件夹下改个文件夹名就行了,可是CCS6.0中工程与文件都与路径有关,而且CCS6.0识别的不是工程文件夹的名字,而是具体的工程文件.Project,而这个文件名是不可以直接重命名的。这下我们怎么办呢?其实,CCS6.0工程下,移植创建新工程更加方便,不止文件夹的名字可以更改回来,连工程名也可以更改。想要实现你的要求,你可以在CCS工程浏览器下选择你的工程,右键—>copy,然后再工程浏览器空白处点击—>Paste(粘贴)在弹出的Copy Project对话框中填写你的新工程名和保存路径就可以了。 而如果你要移植到别的电脑或工作空间,就必须要导入工程了,然后又可以按上一个方法方便的创建新的工程了。点击工具栏—>Project>Import CCS Project..,选择好要导入的工程,点击确定即可。