CCS6编译无法输出BIN文件HEX文件

提示:本文档提出方法仅供参考。



前言

本文介绍了如何通过配置来合理利用CCS自带工具生成.bin文件和.hex文件,希望对您有所帮助。


一、方法详述

1..out/.hex/.bin的区别

.out文件带了调试信息,主要是下载调试用。.hex文件和.bin文件都可以用于生产下载,但是.hex文件又带了地址信息,crc校验等额外信息,所以.out和.hex都会比.bin文件大很多。因此最理想的生产下载文件其实还是.bin文件。

2.针对DSP2xxx相关配置

2.1 生成.hex文件

a) hex文件的生成比较简单,在CCS中右键单击工程名,选择最后一项Propoties,进入工程属性;

b) 在属性中找到 Build -> C2000 Hex Utility,勾选右边的 Enable C2000 Hex Utility即可。

c) 上图点击确认后返回项目,重新编译,等待以下编译信息出现。

<Linking>
'Finished building target: FLASH.out'
' '
'Invoking: C2000 Hex Utility'
"C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/bin/hex2000"  -o "FLASH.hex"  "FLASH.out" 
Translating to Extended Tektronix format...
   "FLASH.out" .text ==> .text
   "FLASH.out" .cinit ==> .cinit
   "FLASH.out" .econst ==> .econst
   "FLASH.out" copysections ==> copysections
   "FLASH.out" ramfuncs ==> ramfuncs
   "FLASH.out" wddisable ==> wddisable
   "FLASH.out" .adc_cal ==> .adc_cal
   "FLASH.out" codestart ==> codestart
'Finished building: FLASH.hex'
' '

**** Build Finished ****

d) 返回项目Release目录,可以看到生成好的.hex文件。

2.2 生成.bin文件

说明:bin文件的生成其实也很简单,是利用CCS的post-build命令实现的。在CCS安装时已经自动安装了一个工具叫做mkhex4bin,位于C:/ti/ccsv6/utils/tiobj2bin文件夹下(根据CCS安装路径可能有所不同)。这个工具可以把.out文件转化成.bin文件,我们要做的是在CCS post-build设置中通过命令调用这个工具,具体操作按照以下步骤。

a) 在工程属性(Propoties)中找到 Build -> Steps,在其中的Post-build steps一栏中输入以下命令。

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd2000" "${CG_TOOL_ROOT}/bin/hex2000" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

b) 上图点击确认后返回项目,重新编译,等待以下编译信息出现。

<Linking>
'Finished building target: FLASH.out'
' '
"C:/ti/ccsv6/utils/tiobj2bin/tiobj2bin" "FLASH.out" "FLASH.bin" "C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/bin/ofd2000" "C:/ti/ccsv6/tools/compiler/c2000_15.12.3.LTS/bin/hex2000" "C:/ti/ccsv6/utils/tiobj2bin/mkhex4bin"
' '

**** Build Finished ****

c) 返回项目Release目录,可以看到生成好的.bin文件。

3.针对DSP6xxx系列相关配置

3.1 生成.bin文件

说明:bin文件的生成其实也很简单,是利用CCS的post-build命令实现的。在CCS安装时已经自动安装了一个工具叫做mkhex4bin,位于C:/ti/ccsv6/utils/tiobj2bin文件夹下(根据CCS安装路径可能有所不同)。这个工具可以把.out文件转化成.bin文件,我们要做的是在CCS post-build设置中通过命令调用这个工具,具体操作按照以下步骤。

a) 在工程属性(Propoties)中找到 Build -> Steps,在其中的Post-build steps一栏中输入以下命令。

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd6x" "${CG_TOOL_ROOT}/bin/hex6x" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

b) 上图点击确认后返回项目,重新编译,等待以下编译信息出现。

<Linking>
'Finished building target: UART.out'
' '
"C:/ti/ccsv6/utils/tiobj2bin/tiobj2bin" "UART.out" "UART.bin" "C:/ti/ccsv6/tools/compiler/c6000_7.4.18/bin/ofd6x" "C:/ti/ccsv6/tools/compiler/c6000_7.4.18/bin/hex6x" "C:/ti/ccsv6/utils/tiobj2bin/mkhex4bin"
' '

**** Build Finished ****

c) 返回项目Debug目录,可以看到生成好的.bin文件。

二、易错点说明

在转换.bin文件时一定要看看写到Post-build steps中的语句是有差异性的,如:

DSP2xxx系列:

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd2000" "${CG_TOOL_ROOT}/bin/hex2000" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

DSP6xxx系列:

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd6x" "${CG_TOOL_ROOT}/bin/hex6x" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

根据实际情况还可能出现以下配置:

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/tiarmofd" "${CG_TOOL_ROOT}/bin/tiarmhex" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/armofd" "${CG_TOOL_ROOT}/bin/armhex" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"

应该根据需要找到*ofd*.exe和*hex*.exe文件,并正确引用其名称才不会出错,否则会出现诸如以下示例的提示:

<Linking>
'Finished building target: UART.out'
' '
"C:/ti/ccsv6/utils/tiobj2bin/tiobj2bin" "UART.out" "UART.bin" "C:/ti/ccsv6/tools/compiler/c6000_7.4.18/bin/armofd" "C:/ti/ccsv6/tools/compiler/c6000_7.4.18/bin/armhex" "C:/ti/ccsv6/utils/tiobj2bin/mkhex4bin"
tiobj2bin.bat failed on C:/ti/ccsv6/tools/compiler/c6000_7.4.18/bin/armofd
Please see http://processors.wiki.ti.com/index.php/Tiobj2bin_Failed
tiobj2bin.bat failed on C:/ti/ccsv6/tools/compiler/c6000_7.4.18/bin/armhex
Please see http://processors.wiki.ti.com/index.php/Tiobj2bin_Failed
C:/ti/ccsv6/utils/tiobj2bin/mkhex4bin failure occurred.  Giving up.
' '
'C:\ti\ccsv6\tools\compiler\c6000_7.4.18\bin\ofd470' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
File does not exist:  at XML_TI_OFD.pm line 877.

**** Build Finished ****

总结

以上就是今天要讲的内容,本文介绍了如何通过配置来合理利用CCS自带工具生成.bin文件和.hex文件,希望对您有所帮助,资料整理不容易,还请留下小爱心。

  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值