TMS320F280049系列文章之第二章 新建工程(注意:代码移植时,索引路径需要重新设置(绝对地址))

TMS320F280049系列文章目录

第一章 获取相关组件(注意:下载或安装不要有中文路径)
第二章 新建工程(注意:代码移植时,索引路径需要重新设置(绝对地址))



前言

本文章采用CCS10.3.1(CCS软件版本)及C2000Ware_4_01(SDK-设计资源)进行TMS320F280049(DSP芯片)系列学习

  • 萌新入坑,如有不对的地方请大佬多多指教,谢谢!->欢迎评论区留言
  • 对于萌新来说,学习无非就是多看博文,但是…0.0大佬们的思维大多都有些跳跃,真的很难理解(当然大佬们估计都是为了记录或者提醒自己的工作及学习例程),所以想通过慢慢学习,把每一步都解释出来(保姆版)

第二章 新建工程(注意:代码移植时,索引路径需要重新设置(绝对地址))

1.工程准备及设置

1.1 新建Template文件(空文件)

  • Template文件(空文件夹)被我放在工作区(CCS工作环境,打开CCS工程时选择的那个路径,文件位置随意,自己知道路径即可)

新建Template文件

1.2 新建CCS工程

  • 1.2.1 打开CCS工程页面,Project->New CCS Project
    新建CCSTemplate工程设置
  • 1.2.2 这里附上Location:D:\CCS10.3.1\Workspace\Template(截图没截上)

注:Output format(输出格式)选择eabi(ELF),貌似是COEF是老版本的,现在多支持ELF,总之,这么选就行(等所有需要的工程文件Copy完,工程文件需要做些修改及设置,稍后再说)

新建CCS工程ELF选择

  • 1.2.3 新建Template工程一览(CCS工程及对应工程目录)
    新建Template工程一览
    新建Template工程目录

1.3 Template工程目录文件Copy准备

  • 1.3.1 新建Template工程目录下,新建source(存放c文件)、include(存放h文件)、cmd(存放cmd文件)及library(存放lib文件)文件
    Template工程新建存储其他文件
  • 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(部分)文件
    C2000Ware(SDK组件)device_support文件
  • D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\driverlib\f28004x\driverlib中的(全部)文件
    C2000Ware(SDK组件)driverlib文件
  • D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\libraries\math\FPUfastRTS\c28\lib中的(部分)文件
    C2000Ware(SDK组件)libraries文件
  • D:\CCS10.3.1\ti_software\ccs\tools\compiler\ti-cgt-c2000_20.2.4.LTS\lib中的(部分)文件
    CCS软件安装包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(全部)文件
    Template工程source文件
  • D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\headers目录下的source(全部)文件
    Template工程source文件
  • 1.4.2 Template工程目录下新建C_driverlib文件(由driverlib复制)
  • D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\driverlib\f28004x\driverlib目录下的(全部.c)文件
    Template工程source文件
  • 1.4.3 Template工程目录下的include文件
  • D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\common目录下的headers(全部)文件
    Template工程include文件
  • D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\headers目录下的headers(全部)文件
    Template工程include文件
  • 1.4.4 Template工程目录下新建H_driverlib文件(由driverlib复制)
  • D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\driverlib\f28004x\driverlib目录下的(全部.h)文件Template工程include文件
  • 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.cmd28004x_generic_ram_lnk.cmd
    Template工程cmd文件
  • D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\device_support\f28004x\headers目录下的cmd(全部)文件Template工程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
    Template工程library文件
  • D:\CCS10.3.1\ti_software\ccs\tools\compiler\ti-cgt-c2000_20.2.4.LTS\lib(软件安装)目录下的rts2800_fpu32_eabi.lib
    Template工程library文件
  • 1.4.7 直接Copy处理
  • D:\CCS10.3.1\ti_C2000Ware\C2000Ware_4_01_00_00\driverlib\f28004x\driverlib目录下的ccs及inc文件直接移植到工程目录
    Template工程ccs及inc文件

1.5 Template工程目录文件校验

  • 1.5.1 Template整体工程文件
    Template整体工程文件
  • 1.5.2 Template工程source文件
    Template工程source文件
  • 1.5.3 Template工程C_driverlib文件
    Template工程C_driverlib文件
  • 1.5.4 Template工程include文件
    Template工程include文件
  • 1.5.5 Template工程H_driverlib文件
    Template工程H_driverlib文件
  • 1.5.6 Template工程cmd文件
    Template工程cmd文件
  • 1.5.7 Template工程library文件
    Template工程library文件
  • 1.5.8 Template整体工程(CCS)

注:工程目录中的28004x_generic_ram_lnk.cmd(非cmd文件中的),为后续工程设置后的文件,无需关注,按照步骤移植、修改、设置即可

Template整体工程(CCS)

1.6 Template工程修改及设置

  • 1.6.1 D:\CCS10.3.1\Workspace\Template\source目录下的f28004x_usdelay.asm文件(删除下划线,以适应输出格式(ELF))
    Template工程f28004x_usdelay.asm文件修改
修改完成:
       .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)
    CCS工程设置及索引
  • 设置工程索引(绝对路径)(Template->Propreties->Build->C2000 Compiler->Include Options)

添加绝对路径D:\CCS10.3.1\Workspace\Template\includeD:\CCS10.3.1\Workspace\Template\H_driverlib

Template工程设置工程索引(绝对路径)

  • 设置工程lib文件(Template->Propreties->C2000 Linker->File Search Path)

添加绝对路径D:\CCS10.3.1\Workspace\Template\library下的2个文件

Template工程设置工程lib文件

  • 设置工程cmd文件(Template->Propreties->General->Linker command file)

添加绝对路径D:\CCS10.3.1\Workspace\Template\cmd下的28004x_generic_flash_lnk.cmd28004x_generic_ram_lnk.cmd

Template工程设置工程cmd文件

1.7 Template工程移植、修改及设置成果(整体工程搭建已经完成,由于我采用的C2000Ware(SDK组件)为最新版本,所以编译会出错,稍后再说)

Template工程移植、修改及设置成果

2.工程编译

Template工程编译错误及警告

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.新建工程成果(无错误,警告忽视)

新建Template工程成果

总结

本章为TMS320F280049学习系列文章 第二章:新建工程(注意:代码移植时,索引路径需要重新设置(绝对地址))

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Uncaught Error是指在JavaScript中发生的未捕获的错误。当代码中出现错误但没有被try-catch块或错误处理函数捕获,就会抛出Uncaught Error。这种错误会导致代码执行中断,并在浏览器的控制台中显示错误信息。 Uncaught Error的原因可能有很多,例如语法错误、逻辑错误、网络请求失败等。为了避免出现Uncaught Error,我们可以采取以下几种解决方案: 1. 使用try-catch块捕获错误:通过将可能出现错误的代码放在try块中,并使用catch块来处理错误,可以避免出现未捕获的错误。例如: ```javascript try { // 可能出现错误的代码 } catch (error) { // 错误处理逻辑 } ``` 2. 使用错误处理函数:在JavaScript中,可以使用window.onerror全局事件处理函数来捕获未捕获的错误。该函数会在发生未捕获的错误被调用,并可以用于记录错误信息或进行其他处理。例如: ```javascript window.onerror = function(message, source, lineno, colno, error) { // 错误处理逻辑 }; ``` 3. 使用Promise的catch方法:如果代码中使用了Promise对象,可以使用catch方法来捕获Promise中的错误。catch方法会在Promise链中的任何位置捕获错误,并执行相应的错误处理逻辑。例如: ```javascript promise.catch(function(error) { // 错误处理逻辑 }); ``` 总结一下,Uncaught Error是指在JavaScript中发生的未捕获的错误。为了避免出现这种错误,我们可以使用try-catch块、错误处理函数或Promise的catch方法来捕获和处理错误。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值