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.

[参考译文] 编译器/TMS320F2.8335万:共享地址的两个或多个变量

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/656488/compiler-tms320f28335-two-or-more-variables-sharing-an-address

部件号:TMS320F2.8335万

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

您好,

我正在使用TMS320F2.8335万上的外部接口实施与外部设备接口的代码。 其中一个地址有两种用途,具体取决于它是读操作还是写操作。 写入地址控制中继。 从地址读取获取设备版本。  

所有其他位置都是使用链接程序命令文件配置的。 虽然我可以在这里执行此操作,但通过代码来基于读或写操作提取地址,我宁愿将两个变量编译指示到同一个地址; 一个是一个常量,当读取时它是设备版本,而另一个可写入以设置中继状态。 这是否可行?

谢谢!

乔纳森

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我想你必须把它变成一种方法或一个类的属性。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    I宁愿将两个变量编译为同一地址;一个是常量,当读取时是设备版本,而另一个可写入以设置中继状态。 这是否可行?[/QUOT]

    我想不出从C或C++实现这一目的的方法。  但我可以在链接程序命令文件中想出一种方法来执行此操作。  在链接程序命令文件中,您需要类似于...的语句。

    _READ_VARIABLE = 0x1234;
    _WRTE_VARIABLE =_READ_VARIABLE; 

    在C或C++中,声明(不定义)这些变量类似于...

    volatile extern int write_variable;
    volatile extern int read_variable; 

    请注意名称如何在链接器命令文件中以下划线开头,而不是以C开头。 这是因为C2000工具使用了较旧的COFF ABI。  要使此技术适应更新的EABI,请勿使用前导下划线。   

    谢谢,此致,

    -George