关于使用CCS 7.0生成Bin问题
芯片是CC1310 ROM 128K版本, 我按照之前提问的网友的方法在编译上加入
"${CCS_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}"
"${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/armofd"
"${CG_TOOL_ROOT}/bin/armhex" "${CCS_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
编译出来的Bin文件很大,目前代码功能还没加入OAD升级功能,源HEX就已经达到 125K, BIN 128K , 我担心整合了OAD后,固件会变得更大而无法烧录,按理来说bin 应该会比hex小吧?
以下是我部分配置(实际芯片是CC1310, 配置用的是1350,毕竟通用嘛?)
关于应用程序占用的memory size,不是看生成的hex文件的大小,而是在.map文件中查看
例如,rfEasyLinkRx_CC1310DK_7XD_tirtos_ccs例程生成的hex文件大小为106k
但是查看rfEasyLinkRx_CC1310DK_7XD_tirtos_ccs.map可以看到
MEMORY CONFIGURATION
name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
FLASH 00000000 00020000 0000ad44 000152bc R X
SRAM 20000000 00005000 00002c2f 000023d1 RW X
说明Flash使用了44k左右,Ram使用了11k左右。
非常感谢您的提示。 虽然在.map文件中查询得到很小的bin文件。实际上工程文件目录上还是很大。
.map 查询的到 bin 大小是51K
工程文件目录查询到 bin 大小是128K
在实际OAD应用上,128K真的是太大了。
不知是不是编译配置的问题? 实际上我使用以下配置代码编译出来的总是那么大,我只是想得到一个小一点的真实的bin文件用于OAD。谢谢
"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin"
"${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/armofd"
"${CG_TOOL_ROOT}/bin/armhex"
"${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
你可以使用bin查看工具打开bin文件看看,里面后面大部分内容应该都是0xFF
也就是说生成的bin文件是把整个128k空间填入的内容,后面全0xFF的空间其实并没有用到
你可以试试生成几个占用Flash空间大小不同的程序,对比一下他们生成的bin文件的大小和内容就知道了
的确是这样。打开Bin文件后发现的很多FF, 但是并不是连续的全FF。 我怀疑是否编译优化等级导致?总之有没有办法编译出尽量等于实际大小的bin文件?谢谢
你可以试试生成几个占用Flash空间大小不同的程序,对比一下他们生成的bin文件的大小和内容就知道了
能否直接告诉我使用CCS编译成更小的bin方法? 我知道一个使用python编译器可以做到,但是要调用到外部的cmd。
实际代码是看.map文件为准不是看BIN文件,代码生成小点,提高编译器优化等级