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.

[参考译文] CCS/CCStudio:如何使用.cmd 将编译结果的整个.c 代码文件修复为固定的闪存地址?

Guru**** 2595805 points
Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/963621/ccs-ccstudio-how-to-use-cmd-to-fix-a-whole-c-code-file-compiling-result-into-a-fixed-flash-address

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

工具/软件:Code Composer Studio

大家好、

我的客户请求将整个.c 代码文件编译结果修复为固定的闪存地址、我认为应该在.cmd 文件中完成。

在此用例中、我可以参考的.cmd 文件修改的任何示例或格式? 我假设它应该位于.cmd 文件中的 SECTION / GROUP define 中、对吗?

TI 器件是 CC1310、但我相信它与之无关、它可以是任何器件。

谢谢!

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

    我想重申这个问题、以确保我正确理解它。  您的客户希望将所有函数从一个 C 源文件分配到闪存存储器中的特定地址。  是这样吗?  现在、我认为是这样。

    有关链接器命令文件的一般背景信息、请阅读文章 链接器命令文件入门

    有多种方法可以实现它。  我认为这是最直接的。

    在链接器命令文件的 SECTIONS 指令中,有一个类似于...的条目。

    专用输出段
    {
    name_of _file.obj (.text)
    } > SPECIAL _MEMORY_RANGE 

    这会形成一个名为 SPECIAL OUTPUT SECTION 的输出段。  它包含一个输入段、即目标文件 name_of _file.obj 中的.text 输入段。  它被分配给 SPECIAL _MEMORY_RANGE 中的一个地址。   MEMORY 指令中指定了 SPECTRY_MEMORY_RANGE (本示例中未显示)。  如果需要、将 SPECIFIC_MEMORY_RANGE 替换为硬编码地址、如0x4000

    谢谢、此致、

    乔治

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

    尊敬的乔治:

    为了更加准确、不仅要使用函数、还要将一个 C 源文件中的所有变量都添加到闪存存储器中的特定地址。

    我尝试了一些东西、从输出.map 文件中看、它正常工作:将 sensor.c 函数和变量放入闪存地址、从 FLASH_SENSOR 开始、长度为0x2000 (在.cmd 文件的开头定义、而不是粘贴在此处)

    组
    {
    sensor_code{sensor.obj}
    } LOAD = FLASH_SENSOR 

    对您来说、它是否正常? 还有其他需要注意的事项吗?

    谢谢!

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

    这是可行的,但这更干净...

    sensor_code
    {
    sensor.obj
    }> flash_sensor 

    这将创建一个名为 sensor_code 的输出段。  它由目标文件 sensor.obj 中的所有输入段、代码段和数据段组成。  它被分配到存储器范围 FLASH_SENSOR 中的一个地址

    谢谢、此致、

    乔治

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

    [引用 user="Yan]I 尝试了一些东西、从输出.map 文件中看、它是否起作用:将 sensor.c 函数和变量放入 FLASH_SENSOR[/quot]开始的闪存地址中不会将可写变量放入闪存中会导致程序无法写入变量?