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/AM4377:编译器支持在源代码级别指定变量的运行时地址。 这可以通过位置pragma完成。 但是如何使用#pragma?

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/628352/ccs-am4377-the-compiler-supports-the-ability-to-specify-the-run-time-address-of-a-variable-at-the-source-level-this-can-be-accomplished-with-the-location-pragma-but-how-to-use-pragma

部件号:AM4377

工具/软件:Code Composer Studio

#pragma loc位置(Test, 0x800.04万);

Int32测试;

但警告:忽略#pragma location [-wunkown pragma ], 并且未将变量"Test"分配给地址 0x800.04万。

 

编译器支持在源代码级别指定变量的运行时地址。 这可以通过位置pragma完成。  但是如何使用pragma?

 

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

    这...

    Gaoqiang Deng 说:
    警告:忽略#pragma位置[-wunkown pragma ]

    ...是GCC编译器发出的诊断。  这使我认为您使用的是GCC ARM编译器,而不是TI ARM编译器。  位置pragma仅受TI ARM编译器支持。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    不是TI的ARM编译器,但GCC不是GNU。 关键是如何将地址分配给变量。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    计划:

    地图:

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

    Gaoqiang Deng 说:
    不是TI的ARM编译器,但GCC不是GNU。

    GCC和GNU是指同一编译器的不同方式。

    Gaoquiang Deng 说:
    关键是如何为变量分配地址。[/QUOT]

    虽然我还没有尝试过,但我相信 这里介绍的方法 (不是TI提供的方法)将解决您的问题。

    谢谢,此致,

    -George

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

    抱歉,由于我的公司有文件加密系统,因此无法编辑CMD文件,因此我无法使用您推荐的方法。我想使用其他方法

    喜欢这个吗?

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

    程序可以成功编译,但变量未分配给指定的地址。  

    实际内存地址:

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

    位置pragma仅受TI ARM编译器支持,而不受GCC ARM编译器支持。  无论它是使用#pragma还是使用__attribute__编写的,都是如此。  我不熟悉"at"属性。   

    Gaoqiang Deng 说:
    由于我的公司有一个文件加密系统,因此无法编辑CMD文件,因此我无法使用您推荐的方法[/QUOT]

    在GCC ARM工具中,将特定C变量分配给特定地址的唯一解决方案是将该变量放在您命名的部分中,即修改链接器命令文件以将该部分分配给特定地址。  注意:文件扩展名.cmd只是一种常见的约定。  您可以使用任何文件扩展名,如.txt。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢你。 您是否有cmd文件的应用程序文档? 以便我们可以修改cmd文档。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    对不起,George。 当生成项目时,link.cmd文件为正常;当重建工作时,link.cmd将更改回原始,修改后的零件将消失。 另一个问题是,当我修改link.cmd文件时,无法加载程序
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    Gaoquiang Deng 说:
    当我修改link.cmd文件时,无法加载程序[/QUOT]

    要更好地理解链接器命令文件,请参阅文章 链接器命令文件入门

    谢谢,此致,

    -George

x 出现错误。请重试或与管理员联系。