TMS320F280049系列文章目录
第一章 获取相关组件(注意:下载或安装不要有中文路径)
第二章 新建工程(注意:代码移植时,索引路径需要重新设置(绝对地址))
前言
本文章采用CCS10.3.1(CCS软件版本)及C2000Ware_4_01(SDK-设计资源)进行TMS320F280049(DSP芯片)系列学习
- 萌新入坑,如有不对的地方请大佬多多指教,谢谢!->欢迎评论区留言
- 对于萌新来说,学习无非就是多看博文,但是…0.0大佬们的思维大多都有些跳跃,真的很难理解(当然大佬们估计都是为了记录或者提醒自己的工作及学习例程),所以想通过慢慢学习,把每一步都解释出来(保姆版)
第二章 新建工程(注意:代码移植时,索引路径需要重新设置(绝对地址))
1.工程准备及设置
1.1 新建Template文件(空文件)
- Template文件(空文件夹)被我放在工作区(CCS工作环境,打开CCS工程时选择的那个路径,文件位置随意,自己知道路径即可)
1.2 新建CCS工程
- 1.2.1 打开CCS工程页面,Project->New CCS Project
- 1.2.2 这里附上Location:D:\CCS10.3.1\Workspace\Template(截图没截上)
注:Output format(输出格式)选择eabi(ELF),貌似是COEF是老版本的,现在多支持ELF,总之,这么选就行(等所有需要的工程文件Copy完,工程文件需要做些修改及设置,稍后再说)
- 1.2.3 新建Template工程一览(CCS工程及对应工程目录)
1.3 Template工程目录文件Copy准备
- 1.3.1 新建Template工程目录下,新建source(存放c文件)、include(存放h文件)、cmd(存放cmd文件)及library(存放lib文件)文件
- 1.3.2 了解工程文件目录下所需的资源(第一章下载的C2000Ware(SDK组件)及软件安装包文件,可直接移步1.3.3)
主要用到的文件目录如下(根据自己安装的路径)
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x下的common及headers中的source(全部)、include(全部)及cmd(部分)文件
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\driverlib\f28004x\driverlib中的(全部)文件
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\libraries\math\FPUfastRTS\c28\lib中的(部分)文件
- D:\CCS10.3.1\ti_software\ccs\tools\compiler\ti-cgt-c2000_20.2.4.LTS\lib中的(部分)文件
1.4 C2000Ware(SDK组件)复制到Template工程目录对应文件下(复制时可直接移步1.5查看(校验)最终移植成果,防止复制出错)
- 1.4.1 Template工程目录下的source文件
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\common目录下的source(全部)文件
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\headers目录下的source(全部)文件
- 1.4.2 Template工程目录下新建C_driverlib文件(由driverlib复制)
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\driverlib\f28004x\driverlib目录下的(全部.c)文件
- 1.4.3 Template工程目录下的include文件
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\common目录下的headers(全部)文件
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\headers目录下的headers(全部)文件
- 1.4.4 Template工程目录下新建H_driverlib文件(由driverlib复制)
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\driverlib\f28004x\driverlib目录下的(全部.h)文件
- 1.4.5 Template工程目录下的cmd文件
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\common目录下的cmd(部分)文件:28004x_generic_flash_lnk.cmd及28004x_generic_ram_lnk.cmd
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\headers目录下的cmd(全部)文件
- 1.4.6 Template工程目录下的library文件
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\libraries\math\FPUfastRTS\c28\lib(C2000Ware)目录下的rts2800_fpu32_fast_supplement_eabi.lib
- D:\CCS10.3.1\ti_software\ccs\tools\compiler\ti-cgt-c2000_20.2.4.LTS\lib(软件安装)目录下的rts2800_fpu32_eabi.lib
- 1.4.7 直接Copy处理
- D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\driverlib\f28004x\driverlib目录下的ccs及inc文件直接移植到工程目录
1.5 Template工程目录文件校验
- 1.5.1 Template整体工程文件
- 1.5.2 Template工程source文件
- 1.5.3 Template工程C_driverlib文件
- 1.5.4 Template工程include文件
- 1.5.5 Template工程H_driverlib文件
- 1.5.6 Template工程cmd文件
- 1.5.7 Template工程library文件
- 1.5.8 Template整体工程(CCS)
注:工程目录中的28004x_generic_ram_lnk.cmd(非cmd文件中的),为后续工程设置后的文件,无需关注,按照步骤移植、修改、设置即可
1.6 Template工程修改及设置
- 1.6.1 D:\CCS10.3.1\Workspace\Template\source目录下的f28004x_usdelay.asm文件(删除下划线,以适应输出格式(ELF))
修改完成:
.def F28x_usDelay
.sect ".TI.ramfunc"
.global __F28x_usDelay
F28x_usDelay:
SUB ACC,#1
BF F28x_usDelay,GEQ ;; Loop if ACC >= 0
LRETR
- 1.6.2 修改部分文件编译条件(Exclude from Build,即不参与编译)
- D:\CCS10.3.1\Workspace\Template\ccs目录下的driverlib_coff.lib(2个)
- D:\CCS10.3.1\Workspace\Template\cmd目录下,除f28004x_headers_nonbios.cmd之外的cmd文件
- 1.6.3 工程设置及索引
- 打开工程设置(Template->Propreties)
- 设置工程索引(绝对路径)(Template->Propreties->Build->C2000 Compiler->Include Options)
添加绝对路径D:\CCS10.3.1\Workspace\Template\include和D:\CCS10.3.1\Workspace\Template\H_driverlib
- 设置工程lib文件(Template->Propreties->C2000 Linker->File Search Path)
添加绝对路径D:\CCS10.3.1\Workspace\Template\library下的2个文件
- 设置工程cmd文件(Template->Propreties->General->Linker command file)
添加绝对路径D:\CCS10.3.1\Workspace\Template\cmd下的28004x_generic_flash_lnk.cmd或28004x_generic_ram_lnk.cmd
1.7 Template工程移植、修改及设置成果(整体工程搭建已经完成,由于我采用的C2000Ware(SDK组件)为最新版本,所以编译会出错,稍后再说)
2.工程编译
2.1 编译错误
-
2.1.1 error #10056: symbol “XXX” redefined: first defined in “./source/f28004x_defaultisr.obj”; redefined in “./source/f28004x_sw_prioritized_defaultisr.obj”
-
2.1.2 error #10056: symbol “XXX” redefined: first defined in “./source/f28004x_pievect.obj”; redefined in “./source/f28004x_sw_prioritized_pievect.obj”
-
错误原因:变量XXX重定义问题(D:\CCS10.3.1\Workspace\Template\source文件)
-
解决办法:考虑到之前的工程文件也没用到这两个文件,所以直接设置其取消编译即可(CCS工程里的source文件:f28004x_sw_prioritized_defaultisr.c及f28004x_sw_prioritized_pievect.c)
2.2 编译警告
-
2.2.1 #179-D variable “divider” was declared but never referenced
-
2.2.2 #179-D variable “dValue” was declared but never referenced
-
警告原因:变量divider及dValue被定义但是未被使用
-
解决办法:忽视,暂时用不上
3.新建工程成果(无错误,警告忽视)
总结
本章为TMS320F280049学习系列文章 第二章:新建工程(注意:代码移植时,索引路径需要重新设置(绝对地址))