This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS9 MSP430FR2353 生成bin文件

Other Parts Discussed in Thread: UNIFLASH, MSP430FR2353

Code Composer Studio

Version: 9.0.1.00004

CCS9.0.1 编写代码,生成bin 文件总是失败,参考网上的推荐的方法总是生成不了bin 文件

"${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" & "${CG_TOOL_HEX}" -i "${BuildArtifactFileName}" -o "${BuildArtifactFileBaseName}.hex" -order MS -romwidth 32 & "${CG_TOOL_HEX}" --ti_txt "${BuildArtifactFileName}" -o "${BuildArtifactFileBaseName}.txt" -order MS -romwidth 32

在自己的Post-build steps 输入以上命令,并 进行重新clean 编译

提示


'D:\ti\ccs901\ccs\tools\compiler\ti-cgt-msp430_18.12.1.LTS\bin\ofd470' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
File does not exist: at XML_TI_OFD.pm line 877.

根本找不到ofd470 命令,hex470命令  进入该目录查看,未找到该两个文件,请问下?咱们有什么好的办法生成bin文件的吗?

  • 输入下面的语句,我试了一下是可以的


    "${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin" "${BuildArtifactFileName}" "${BuildArtifactFileBaseName}.bin" "${CG_TOOL_ROOT}/bin/ofd430" "${CG_TOOL_ROOT}/bin/hex430" "${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin"
  • [2019/11/21 下午3:33:07] [ERROR] MSP430: Trouble Writing Memory Block at 0x0 on Page 0 of Length 0x4000: Could not write device memory
    [2019/11/21 下午3:33:07] [ERROR] MSP430: File Loader: Verification failed: Target failed to write 0x00000
    我用uniflash 下载程序时,出现这样的错去,下载bin文件时,用刚才您给的方法确实生成了bin文件,下载报错
  • 我通过您提供得这种方法生成得bin 文件比hex 文件大很多,应该是比hex文件小才是,不知道你那边尝试的是比hex 文件大还是小
  • 这个方法测试了,hex470  改成430 和TI官方给的方法一样,还有就是cmd命令配置没有找到在哪儿进行配置的,

  • 是不是您下面所示的地址没有设置正确?

    我使用FR2433来实验的,Main: code memory  起始地址是 C400h

  • 通过您提供的方法,我这边问题基本解决了,但是还是有个疑问,我用CCS编程 芯片是MSP430FR2353,我这边转换成bin文件,无论我代码量怎么进行变化,hex怎么变化我bin文件始终是 16k的大小,是和咱们这个CCS软件有关系吗?
  • . hex 文件的大小,不是最终的代码大小, BIN的大小才是真正的代码所点的空间大小。

    或者您也可以通过ccs编译产生的.map文件,查看Memory的使用量情况以及代码空间的大小是否和您产生的bin文件大小一致。
  • +--+----------------------------+-------+---------+---------+
    Total: 5876 44 0

    Stack: 0 0 160
    Linker Generated: 0 43 0
    +--+----------------------------+-------+---------+---------+
    Grand Total: 10308 99 1030

    我bin文件查看的是16384字节
  • https://e2echina.ti.com/question_answer/microcontrollers/msp430/f/55/t/183188

    看看是不是我这个贴说的那个文件位置你没找到。

  • 这个方法我试过,可以生成bin文件的,也可以将报错目录下的hex430 修改为hex470 还有一个ofd430修改为ofd470 也是可以生成bin文件,现在是 生成的bin文件竟然比hex文件还大,无论我代码怎么删,加生成的代码量始总那么大,也就是我flash的大小,下载到我的芯片里面是可以运行的,我想在我的芯片里面如果加引导程序,下载bin的话,就没办法下载了,引导程序加执行程序,肯定大于我的falsh的大小
  • 这个方法我试过,可以生成bin文件的,也可以将报错目录下的hex430 修改为hex470 还有一个ofd430修改为ofd470 也是可以生成bin文件,现在是 生成的bin文件竟然比hex文件还大,无论我代码怎么删,加生成的代码量始总那么大,也就是我flash的大小,下载到我的芯片里面是可以运行的,我想在我的芯片里面如果加引导程序,下载bin的话,就没办法下载了,引导程序加执行程序,肯定大于我的falsh的大小
  • Hex files are ASCII and therefore their size will forcefully be larger than a raw binary file.

    A raw binary file format such as .bin could be the answer. However, since a typical MSP430 has code in non-contiguous memory, the output file may become very large

    应该是这个原因

    参考帖子 e2e.ti.com/.../397693
  • 好的,谢谢解答,非常感谢
  • 很高兴能帮到您
  • 刚用winhex 查看了bin 文件,开始时我的代码部分,中间全是0x00 0x00  在地址 00002016 以后不知道又加了什么(后面时添加的部分) 00 00 00 00 78 f8 78 f8 78 f8 00 00 00 00 00  78 f8 78 f8 78 f8 00 00 00 00 00 00 78 f8 64 f8

    不明白编译器最后要加的这些时干嘛用的,如果在末尾增加,刚好增加bin 文件的大小,也刚刚好时 我可编程空间的大小