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.

[参考译文] 编译器/TMS320F28335:如何删除.bin 文件中的零

Guru**** 2535650 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/606431/compiler-tms320f28335-how-to-remove-the-zero-in-bin-files

器件型号:TMS320F28335

工具/软件:TI C/C++编译器

您好、香榭丽舍

我的客户正在为 F28335设计 UART 引导加载程序。 引导加载程序位于 FlashA (0x338000~0x33FFFF)中、应用程序位于 FlashC (0x328000~0x32FFFF)中。 对于该应用、它们使用 CCS 编译后处理命令来生成.bin 文件。

"${CCE_INSTALL_ROOT}/utils/tiobj2bin/tiobj2bin ""${BuildArtiftFileName}""${BuildArtiftFileBaseName}.bin""${CG_TOOL_ROOT}/bin/armofd ""${CG_TOOL_ROOT}/bin/armhex ""${CCE_INSTALL_ROOT}/utils/tiobj2bin/mkhex4bin  

但是、他们发现生成的.bin 文件太大。 我帮助检查了内容并发现数据布局如下所示。

除了 CSM 之外、FlashB 和 FlashA 都为零。 因此.bin 太大。 那么、我的问题是如何在编译和链接期间删除无用的零? 是否有任何命令或参数?  

非常感谢。

BR、

年轻

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、香榭丽舍
    可以关闭此帖子。 我们发现根本原因是 CSMPassword.asm 文件。 因为0x3F7F80和0x3F7FF5之间的所有地址都被编程为0x0000、这会导致内容分离。 删除.asm 文件后、.bin 文件显著减小。
    .sect "csm_rsvD"
    .loop (3F7FF5h - 3F7F80h + 1)
    int 0x0000
    endloop

    此致、
    年轻