TI28035 .out文件转换为.bin文件。 TI28035中RAM的一个地址存放的是两个字节(16位)数字(这一点和其他单片机不一样,其他的单片机RAM的一个地址对应一个字节即8位),我转化的时候发现生成HEX的时候地址和数据都是对应正确的,再转化成bin的时候就不对了:原本存放在一个地址上的两个字节数被分为两个地址各存放一个字节,最后照成地址和数据完全不对应。无法通过第三方软件下到RAM中正常运行。
例如:想要的结果(也是正确的结果):0x9940上0x1245。结果得到的确是(错误的结果)0x9940 上存放12 0x9941 上 45 。
这样的错误结果照成:按地址吧bin文件下载到RAM的时候完全不能用,地址都超限了。
我转化bin是做如下处理的:
选择Build,在Post-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"
也可以直接在命令行里这样:tiobj2bin.bat fls.out fls.bin ofd2000.exe hex2000.exe mkhex4bin.exe(前提:把所有要用的exe及. out和 .bat拷贝到同一目录下)。
生成的过程都会报错如下:
warning: section fls.out(.text) at 07ee000h falls in unconfigured memory
(skipped)
warning: section fls.out(.cinit) at 07ee4dch falls in unconfigured memory
(skipped)
warning: section fls.out(csm_rsvd) at 07eff00h falls in unconfigured memory
(skipped)
warning: section fls.out(codestart) at 07effech falls in unconfigured memory
(skipped)
warning: section fls.out(csmpasswds) at 07efff0h falls in unconfigured memory
(skipped)
求大神给分析一下,不胜感激,在线等
ta song:
补充一下,生成的bin数据也不对,高字节和低字节被调换了个个。
gaoyang9992006:
楼主这个。out文件不可以下载吗?现在一般不都是生成到.out就OK了吗?还有如果你知道out文件和bin之间的转换关系可以写个小程序处理这个转换
ta song:
回复 gaoyang9992006:
其他应用需要使用bin文件经行下载,还真不知道他们之间的转换关系。