用的是f28335板子,ccs6.1环境。
并且在D:\TI\ccsv6\utils\tiobj2bin目录文件下修改tiobj2bin.bat中470改为2000
然后在build选项下step中添加预编译代码如下
"${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"
可以生成bin文件,但是结果bin文件太大,比我的.out文件还大。
不知道怎么解决,附件为生成的.out文件和.bin文件,求大神帮忙。
转换后的bin文件中被添加了0,如图
解决了!!!
主要是cmd文件配置的问题,把代码begin位还有.text程序段等所有的都改到同一扇区就可以了,中间补了0主要是因为cmd文件中程序存放位置配置的问题。跨度太大,全部改到一个或者临近的几个扇区可以解决问题。最后的bin文件大小只有4k,而且烧到flash可以完美运行。
kaijun zhang:
这里是附件
,
Martin Yu:
CCS6可以直接生成BIN文件的,在属性里面的linker里面生成文件的尾缀直接改成.bin就可以了。我刚试了下,生成的BIN 文件和OUT文件一样大的。
,
kaijun zhang:
应该是会变小的吧 你这直接改个后缀~感觉用处不大
,
mangui zhang:
你把.bin烧入试试看执行情况吧
,
jiangfeng li:
你好 我刚开始研究如何生成bin文件,你说的几个段要连续我不太明白,能帮忙发一下你的cmd吗?我想看看是怎么配置的 我邮箱lijf0626@163.com 万分感激!!!
,
kaijun zhang:
前面说的改cmd什么的主要是因为最后转的bin文件格式太大了,如果没有这个大小的需求,用我前面说的代码是可以生成bin文件的:(如果你是c2000系列的,)
在D:\TI\ccsv6\utils\tiobj2bin目录文件下修改tiobj2bin.bat中470改为2000
然后在build选项下step中添加预编译代码如下
"${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"
然后我为了把bin文件变小通过can传输到flash所以改的cmd。
我这个就是都把它改到放在flashD,上图就是把begin位置改一下,放到flashd的前两个位置,然后改一下flashd的起始位置和长度,也就是小两个字节,因为被前面begin占用了。然后后面SECTIONS中,所有的flash位置都写到flashd就可以了。
,
jiangfeng li:
非常感谢 kaijun zhang 采用你的方法 我也成功转换成bin文件
,
user5846346:
你好,我用的C6701,也出现了.bin文件太大的问题,但是C6701内部没有FLASH存储空间,我把.text这些段都放在内部RAM中,该怎么处理呢?望指教!谢谢!
,
user3994935:
非常感谢您的方法,我也生成了bin文件。
,
user5000995:
你好,我按照您说的这种方法试了,可以生成BIN文件,但是生成的BIN文件与FLASH地址读出来不一致。FLASH地址未写部分为0xff,而生成的BIN文件为0x00,请问您实际用BIN文件了吗?感谢