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.

[参考译文] 编译器/AWR1843:更改段中的变量参数

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/951822/compiler-awr1843-change-aligment-of-variables-within-a-section

器件型号:AWR1843

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

尊敬的 TI 团队:

在我们的链接器脚本中、我们使用的是如下所示的内容:

   dummy_section:fill=fill_pattern、align = 4、load > dummy
   {
   .=align (4);
       *(dummy_section)
       .=align (4);
   }

此段包含一些全局变量、但这些变量在该段中不会以32位对齐方式放置在 RAM 中。 是否需要特殊的链接器设置?

如果我们使用#pragma DATA_ALIGN (variable _in_section、4)、则可以正常工作。

此致、

谢尔盖耶夫

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

    请阅读文章 链接器命令文件入门的第一部分 、并充分了解术语 输入部分和 输出部分。   

    问题是此代码...

    [引用 user="Sergj Postgrebnoj"]  dummy_section:fill=fill_pattern、align=4、load > dummy
       {
       .=align (4);
           *(dummy_section)
           .=align (4);
       }[/报价]

    (笑声) 仅影响输出段的对齐。  输出段内输入段的对齐不受影响。   

    影响输入段对齐的唯一方法是使用 DATA_ALIGN pragma 或等效的 gcc 属性对齐。  有关详细信息、 请在 TI ARM 编译器手册中搜索 标题 为 DATA_ALIGN Pragma 的子章节。

    谢谢、此致、

    乔治

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

    谢谢!

    我说得对、因此无法使用链接器脚本、仅使用 DATA_ALIGN pragma 来强制输入段进行32位对齐?

    再次感谢、此致、

    谢尔盖耶夫

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

    [引用 user="Sergj Postgrebnoj"]没有方法可以使用链接器脚本强制输入段进行32位对齐,只需使用 DATA_ALIGN pragma?

    正确。  乔治