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.

[参考译文] C2000WARE:从 OUT 文件到 Bin 文件未生成常量字符串

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1660658/c2000ware-constant-string-not-generating-in-from-out-file-to-bin-file

器件型号: C2000WARE

您好、

 

我正在使用以下命令在 CCS 中生成 bin 文件,现在我需要实现在一些常量字符串内检查 bin 文件,以确定正确的 bin 文件。

#pragma RETAIN (MCU_Identification)
pragma DATA_SECTION (MCU_Identification、“.mcu_id“)
const char MCU_Identification[]=“Main_V1.0_MCU“;

在 main 中使用此命令,我可以在 out 文件中生成字符串,但它不会在 bin 文件中使用下面提到的命令生成。

${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

 

因此,请建议一些方法来生成 bin 文件中的字符串。

应届毕业生、

Subash  

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

    尊敬的 Subash:

    感谢您对这一问题的耐心、我很抱歉迟来的答复。  

    核心问题是、尽管如此
    #pragma RETAIN 阻止链接器丢弃该段、hex2000(由 tiobj2bin 在内部使用)仅转换显式映射到链接器命令文件 (.cmd) 中存储器区域的段。 如果.mcu_id 未分配存储器地址、则它不会出现在.bin 输出中。 您能否为.mcu_id 创建一个专用段、并通过.cmd 文件将其映射到存储器中的某个区域。 请参阅以下内容

    移动数据

    {/*您现有的地区...*/

    MCU_ID_MEM:origin = 0x3F8000、length = 0x20 /*调整地址以适应设备的闪存*/}

    很重要

    {/*您的现有章节...*/

    .MCU_id:> MCU_ID_MEM }

    选择一个位于器件有效闪存范围内、且不与其他段重叠的原始地址。 调整长度以适合您的字符串大小。

    构建后、运行以下命令以确认字符串已嵌入:

    #在 Windows 上 (PowerShell) Select-String -Path “yourfile.bin“ -Pattern “Main_V1.0_MCU“ -Encoding Byte #在 Linux/Git Bash 字符串上 yourfile.bin | grep “Main_V1.0_MCU“

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

    尊敬的 Subash:

    您能尝试一下吗?

    谢谢、

    IRA