使用CCS12.2为C2000(DSP28335)生成.bin文件和.hex文件

使用CCSv12为C2000生成.bin文件和.hex文件

前言

一般情况下使用CCS生成的.out文件搭配仿真器就可以升级C2000的程序,但如果想要使用串口或者CAN实现程序在线升级,则往往需要目标代码生成的.bin文件。本文将介绍如何使用CCSv12生成工程的.bin文件。

问题描述

笔者尝试了网络上流传了许多使用CCS生成.bin的方法,也使用过TI官方tiobj2bin.bat中的命令,但经过实操过后要么根本就不会生成.bin文件,要么会出现“‘C:’ 不是内部或外部命令,也不是可运行的程序或批处理文件”的报错。

解决方案

首先给出本文参考的解决方案:
CSDN:CCS 10.3.1版本生成.bin文件
知乎:CCS如何生成hex和bin文件
各种方式都是围绕"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd2000" "${CG_TOOL_ROOT}/bin/hex2000" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin" 这一命令展开,但不同的CCS版本在配置上有所不同,下面将以CCSv12.2和DSP28335为例,详细介绍如何生成.bin文件。

关于那一长串代码

这段代码看起来有点像使用Shell脚本或者Windows终端的语句,但笔者对此不太熟,将简单介绍一下大概是什么东西,以便针对不同的芯片架构去使用。
其实每一个分号里面都指向的是某个地址下的某个文件(可以不用管,但需要知道这个绝对地址在哪)。以${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin为例,这段代码实际上指向的是一个.bat文件,前面用花括号引用的内容是CCS的安装地址,具体看截图:

类似的,后面的"${BuildArtifactFileName}"应该是指当前工程的名字,可以不用管;"${BuildArtifactFileBaseName}.bin"应该是指要生成的.bin文件的名字,也可以不用管。后面三个分别是需要调用的几个工具,可以在CCS的安装目录下面找到,分别如下图所示:
ofd2000和hex2000
mkhex4bin

直接复制网上流传的代码为什么不行

笔者在实际操作过程中遇到过两个问题,第一个问题是只生成.bin而不生成.bin文件,这个问题笔者猜测可能是CCS版本不太一样;第二个问题就比较奇怪了,编译器报错:“‘C:’ 不是内部或外部命令,也不是可运行的程序或批处理文件”,这个报错的解决才有了这篇文章。

如何解决

第一步:先将生成hex文件的选项打开,CCS12里面按照下面的三个步骤进行:打开hex生成的选项、指定hex的格式、指定位宽和大小端,如下图:
Enable 'C2000' Hex Utility
指定hex的格式,用ASCII是最容易懂的
指定存储位宽和大小端
第二步:在下图位置复制这段代码:"C:\ti\ccs1220\ccs\utils\tiobj2bin\tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "C:\ti\ccs1220\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\bin\ofd2000" "C:\ti\ccs1220\ccs\tools\compiler\ti-cgt-c2000_22.6.0.LTS\bin\hex2000" "C:\ti\ccs1220\ccs\utils\tiobj2bin\mkhex4bin"。这个就是把那一长串里面几个文件的地址换成了绝对地址,这样做CCS就不会报无法识别"C:"的错误了。
生成.bin的选项

注意事项

  1. 最好在每次编译之前把生成的.hex和.bin都删除,不然编译器可能不会做任何事情(猜测可能是和makefile中的clean有关);
  2. 最好不要只生成bin文件,因为笔者只生成bin文件时编译器没有做任何事情,而且同时生成hex和bin有助于对照和后续烧写;
  3. 每个人CCS安装路径有所不同,在使用直接地址时不要直接复制文中的代码。
  • 21
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
CCS生成HEX文件的方法有两种。方法一是在工程属性窗口中启用C2000 Hex Utility选项,然后重新编译工程即可生成HEX文件。方法二是在工程属性窗口中没有C2000 Hex Utility选项时,可以选择Build->Steps->Use pre-defined step,然后选择"Create flash image:Intel-HEX",点击OK后重新编译工程即可生成HEX文件。\[1\] 在生成HEX文件的过程中,CCS使用了一些命令行工具。其中,"${CG_TOOL_ROOT}/bin/armhex"和"${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"是用来将编译生成的目标文件转换为HEX文件的工具。而"${CG_TOOL_HEX}"则是用来指定HEX文件的输出格式和参数。具体的命令行可以参考引用\[2\]中的示例。\[2\] 另外,如果你是新建一个CCS项目并想要生成HEX文件,可以按照以下步骤进行操作:1.选择Project->New CCS Project...来创建一个新的CCS项目;2.在弹出的对话框中选择芯片型号;3.选择仿真器(根据实际情况选择),后续可以在ccxml文件中进行修改;4.输入工程名;5.选择相应的.cmd文件,如xxx_FLASH_lnk.cmd表示编译出的代码将存储在flash区,xxx_RAM_lnk.cmd表示编译出的代码将存储在RAM区。\[3\] #### 引用[.reference_title] - *1* [CCS生成hex方法](https://blog.csdn.net/weixin_41082557/article/details/117092952)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [CCS如何编译生成hex与txt文件](https://blog.csdn.net/chi_ko_ku/article/details/129850529)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [TMS320F280049 Flash/OTP](https://blog.csdn.net/qq_31868891/article/details/121059035)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值