2022年11月5日(纠正与补充)
无论是生成Dat文件还是生成Bin文件都必须使用TI官方的“Hex6x.exe”软件。
关于该“Hex6x.exe”软件的使用,请参考:SPRU186W 第十一章 Hex Conversion Utility Description。
“Hex6x.exe”软件,需要 直接参数或者RMD文件,将“.out”文件转换成ASCII编码的文本颂宴岩文件。生成的文本文件的内容是用户程序编码中的各个祥枯段落。
在我们使用CCS烧录程序的时候,可以选择烧录bin格式的程序或者是dat格式的程序。在这两者中,bin文件的空间大小更小。
本文8月1日的内容,关于生成bin文件的方式存在错误。在此纠正。
1. 生成bin格式的文件
之前的理解都是,bin文件是按照地址位置摆放数据,但凡两个段之间相距很远,就会填充很多的0。这种生成的方式会导致bin文件很大(100M+)。
CCSv5下载使用的bin文件,是将段追加在一起,每个段前,记录这段的大小以及段的存放位置。
1.1 步骤
(1)使用hex工具,将out文件生成“btbl文件”(文本文件)。
(2)使用“btoccs”工具,将btbl文件中的字符合并成4字节16进野御制的数(文本文件)。
(3)使用“ccstobin”工具,将4字节16进制的字符数转换成真实数值,以二进制文件存放。
Hex工具是不开源的,而btoccs和ccstobin是开源的。
2022年8月1日
参考链接:
知乎讲解《CCS如何生成hex和bin文件》
官网资料《构建前和构建后的步骤》
请添加图片描述
1. 生成BIN文件
1.1 ofd6x工具
将.out文件转换为一个xml文件。
1.2 mkhex4bin工具
为 TI的十六进制转换工具hex6x 创建一个文件。
该文件可用于将xml文件转换为一个临时文件。
1.3 hex6x工具
十六进制转换实用程序。将来自mkhex4bin的临时文件和.out文件一起,转换为一个bin文件。
layout: "post"title: "MDK编译生成.bin文件"
date: "2017-04-20 13:08"
使用 MDK 时,我们实际烧录的文件其实是 .axf 文件,所以一般情况下我们不需要编译出 .bin 或 .hex 文件。
生成 .hex 文件时,需要在工程打开状态 MDK 的 Options for Target 选项中,点击 Output 选项,在中间的 Create HEX File 的空白矩形框上打上勾即可。 .hex 文件可以使用第三方烧写工具烧录到 MCU 中,但是一些烧录工具或者芯片只支持 .bin 文件的烧录,这时候我们需要 MDK 能够输出 .bin 文件,并且 .bin 文件远要比 .hex 来的通用些。
下面说下如何生毕渗成 .bin 文件:
直接在 CMD.exe 下运行 fromelf 工具则可以看到所有的选项和基本命令,这边宏高仅列出最常用的一些内容:
转换过程实际是:通过fromelf.exe工具进行转换,手绝脊将 .axf 格式的文件转换成 .bin 格式的文件。你也可以不通过 MDK ,而是直接在 CMD.exe 窗口下运行 C:/Keil_v5/ARM/ARMCC/bin/fromelf.exe --bin -o ../OBJ/consumer.bin ../OBJ/consumer.axf 手动将 .axf 文件 转换成 .bin 文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)