【C2000】DSP生成hex/bin文件的三种方法

本文介绍了使用C2000 DSP生成Hex/Bin文件的三种方法:通过PC命令行,CCS的后处理命令,以及CCS的C2000 Hex Utility工具。详细步骤包括命令行参数设置和软件操作过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

【C2000】DSP生成hex/bin文件的三种方法

久别重逢,你我归来,仍如人生初见。从距离上次博客更新转眼已经两年过去了, 感慨时间如梭,白驹过隙,日光荏苒。如果热爱一件事那就保持热爱下去,如果觉得技术分享是有意义的那就坚持下去。

往后我会重点关注半导体行业相关的技术动态, 从MCU芯片底层架构,MCU芯片应用(如德州仪器的DSP产品C2000实时控制MCU,Sitara MCU+产品AM263x/AM243x, 以及低端的Cortex-M0架构MCU ),不同行业应用的学习等等。以C2000实时控制MCU为例, 重点介绍电机控制的应用和数字电源控制的应用。所以,后续博客的分享是承上启下, 继往开来。本博客给大家带来DSP生成hex/bin文件的三种方法。


## 0研究背景 **写在前面:**

 1.本代码基于CCS12.20版本,低版本或者不同版本可能会报错;
 2.德州仪器的开发板LAUNCHXL-F280039C;
 3.所参考的资料均来自TI官网及官方文档。参考C2000Ware中的led_ex1_blinky example
 4.如果本博客恰巧与您的研究有所关联,欢迎您的咨询qq1366196286


1.通过PC上的command命令来生成Hex/Bin文件

可以通过PC上的command命令来调用hexC2000.exe来生成Hex文件,详细步骤如下:

Step1.快捷键Win +R 输入“”“cmd”进入windos命令

在这里插入图片描述

Step2. cd C:\Users\ShaoxingKe\Desktop\HexC2000

cd  C:\Users\ShaoxingKe\Desktop\HexC2000

CCS安装时会自动安装有Hex2000.exe工具, 默认安装是C盘, 我这里把CCS安装在F盘, 如下路径:
在这里插入图片描述

根据hex2000.exe所在位置来,我这里将hex2000.exe放在桌面的文件夹HexC2000中。

在这里插入图片描述
   如下图:
在这里插入图片描述

Step3.输入hex2000 -romwidth 16 -memwidth 16 -i -o file_name.hex +FileName

hex2000 -romwidth 16 -memwidth 16 -i -o led_ex1_blinky.hex led_ex1_blinky

在这里插入图片描述

4.回车即可生成对应的.hex文件

   如下图:
在这里插入图片描述

2.通过CCS上的后处理命令Post-build steps来生成Hex/Bin文件

其实CCS安装时已经安装了一个工具mkhex4bin,Path位于C:\ti\ccs1220\ccs\utils\tiobj2bin文件夹下(根据CCS安装路径可能有所不同)。该工具可以把.out文件转化成.bin文件。

https://software-dl.ti.com/ccs/esd/documents/users_guide/ccs_project-management.html#pre-and-post-build-steps

   如下图:

在这里插入图片描述

"${CG_TOOL_HEX}" -i "${BuildArtifactFileName}" -o "${BuildArtifactFileBaseName}.hex" -order MS -romwidth 16
"${CG_TOOL_HEX}" -i "${BuildArtifactFileName}" -boot -sci8 -a -o "${BuildArtifactFileBaseName}.txt"
"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin.bat" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd2000.exe" "${CG_TOOL_ROOT}/bin/hex2000.exe" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin.exe"

{CCS_INSTALL_ROOT} 表示CCS安装路径

{CG_TOOL_ROOT}表示cgTool安装路径

{PROJECT_LOC}表示工程路径

   如下图:

在这里插入图片描述

3.通过CCS上的C2000 Hex Utility来生成Hex文件

可以直接通过CCS自带的C2000 Hex Utility工具来生成Hex文件,详细步骤如下:

https://software-dl.ti.com/ccs/esd/documents/ccs_hex-utility.html

Step1:Enable “C2000 Hex Utility”

   如下图:
在这里插入图片描述
Step2:为Hex文件指定Memory width与ROM width,均为16。C2000最小操作位数是16bit的, 不是8bit的。

   如下图:
在这里插入图片描述
Step3:选择输出的hex格式,选择Intel hex(–intel, -i)的格式

   如下图:

在这里插入图片描述
Step4:点击Apply and Close, 重新编译工程并在Debug目录下可以找到对应Hex文件。

在这里插入图片描述
以上是DSP生成hex/bin文件的三种方法。

其中, C2000的C28x架构是16位的最小处理位宽,如下图所示:

内存宽度是内存系统的物理宽度(以位为单位),通常与目标处理器宽度相同,(即)16 位处理器具有 16 位内存架构。然而,一些应用程序可能需要将目标字分解为多个、连续和更窄的记忆字。默认情况下,十六进制转换实用程序将内存宽度设置为目标>宽度,但这可以使用 --memwidth 选项进行更改。
ROM 宽度决定了 hex 实用程序如何将数据划分为输出文件。在较旧的十六进制编程器中,ROM 宽度用于指定每个 ROM 设备>的物理宽度(以位为单位)。在目标文件数据映射到内存字之后,内存字被分成一个或多个输出文件。大多数现代闪存编程器>不需要特定的 ROM 宽度,但最好检查编程器是否施加了任何限制。
为 memwidth 和 romwidth 指定的值决定了十六进制输出文件的数量:
如果内存宽度≥ROM宽度:文件数=内存宽度÷ROM宽度
如果内存宽度 < ROM 宽度:文件数 = 1
例如,对于 16 的内存宽度,您可以指定 ROM 宽度值为 16 并获得一个包含 16 位字的单个输出文件。或者您可以使用 ROM 宽度值 8 来获得两个文件,每个文件包含每个字的 8 位。
十六进制转换实用程序使用的默认 ROM 宽度(未明确指定时)取决于输出格式:
对于除 TI-Tagged 之外的所有十六进制格式,默认 ROM 宽度为 8 位。
对于 TI-Tagged,默认 ROM 宽度为 16 位。
例如,如果您使用的是 Cortex ARM 设备(默认内存宽度为 32),并且您选择 Intel hex 格式(默认 ROM 宽度设置为 8),则 hex 实用程序将生成 4 个输出 hex文件。要获取单个输出文件,您可以将 --romwidth 选项设置为 32。

此外, 也可以View.→ Memory Browser → 输入“”代码指定地址“” → Save Memory,参考如下:

在这里插入图片描述
从cmd文件中可知代码存放从FLASH_BANK0_SEC2 | FLASH_BANK0_SEC3 | FLASH_BANK0_SEC4,共计12KB。
在这里插入图片描述
右击Save Memory, 设置保存格式, 指定起始地址,保存范围/长度,确定可输出Hex文件。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

总结

可以通过不同的方法来生成Hex/Bin文件, 以便后续文件或Bootloader升级所需的格式,或者生产烧录所需要的文件格式。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

昔时扬尘处

你的鼓励会让技术更加具有价值!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值