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.

[参考译文] 编译器/CCStudio:如何生成.bin 文件

Guru**** 2524460 points
Other Parts Discussed in Thread: MSP430AFE253

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/710031/compiler-ccstudio-how-to-generate-bin-file

器件型号:CCStudio
主题中讨论的其他器件:MSP430AFE253

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

大家好、

情况是、我已经为 MSP430AFE253器件准备了一个定制的引导程序、将有数百个引导程序、我们称之为控制器的另一个器件应在需要时执行固件升级。 我想尽可能缩短固件升级时间、因此我不想使用"MSP430HexUtility"、它提供的 txt 文件的大小几乎是闪存中.text 的3倍。

因此、我想使用二进制文件、但我找不到编译器如何生成它们。 (我进行了一些搜索。)

我认为填充零对我来说不会是个问题、因为我的应用程序位于闪存区域0xC000-0xFA00 (包括代理矢量和复位矢量)中、并且填充了超过%95。

我尝试  了 http://e2e.ti.com/support/development_tools/code_composer_studio/f/81/p/65174/826785.aspx#826785 ,但它不起作用。

我还阅读了汇编语言工具-第12节:十六进制转换实用程序描述符、当我尝试根据我在文档中看到的文件生成.cmd 文件时、我会得到"找不到文件 ROM"错误

我必须指出、我对 Linkers、Compilers、Makefiles 等概念非常了解 我对他们只有部分了解。 如果解决方案与它们相关、我希望得到一个清晰明了的解释。

我使用的是 CCS v8.1.0、

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

    如果您可以访问 Linux 实用程序 objcopy、请使用它。  与此类似的命令将起作用...

    % objcopy -i ELF32-lLittle -O 二进制 input_file.out output_file.bin 

    文件 input_file.out 由 MSP430链接器创建。  文件 output_file.bin 由 objcopy 创建。   

    如果您无法访问 Linux objcopy、则可以使用 CCS 内 GCC MSP430编译器附带的 objcopy。  命令的完整路径类似于...

    C:\ti\ccsv8\tools\compiler\msp430-gcc-6.4.0.32_win32\bin\msp430-elf-objcopy 

    谢谢、此致、

    乔治

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、George、很抱歉、我无法查看论坛一段时间。 我忙于做其他一些工作。

    我将尝试执行此操作、并尽快发布反馈。

    ı,我不知道如何使用 objocpy 实用程序,是要在 cmd for Windows 上输入命令,还是我应该在链接器命令文件中键入此命令?(我不使用 Linux,我有 Windows 10。 我找到了可执行的 MSP430-elf-objcopy)。 我应该如何选择输出文件的名称,可执行文件是否应该创建我所说的文件? 它将.bin 文件放在哪里? 在项目的调试文件夹中?

    请参阅 SLAU646C (MSP430 GCC 用户指南)中的关键字"objcopy"、图中显示了编译中的工程属性中的部分、例如"GNU Linker""GNU Object Utility""GNU Compiler"当我检查我的时、我看不到任何与 GCC 相关的内容。

    提前感谢、祝您愉快
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢、George、我将 MSP430-elf-objcopy 可执行文件复制到调试文件夹中、并添加此行;

    "C:\Users\TOVRA\workspace_v8\AFE253_API_1\Debug\msp430-elf-objcopy.exe -i ELF32-lLittle -O 二进制 AFE253_API_1.out output_file.bin
    "
    编译后处理

    它会生成名为 output_file.bin 的二进制文件、非常感谢^^