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.

[参考译文] TMS570LS3137:如何为.data、.stack 段设置字节对齐?

Guru**** 2595805 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1050402/tms570ls3137-how-should-byte-alignment-be-set-for-the-data-stack-segments

器件型号:TMS570LS3137

   我们正在调试另一个问题、我们希望将程序的数据段和堆栈对齐到8个字节。

选中"ARM 优化 C/C++编译器 V16.9.0.LTS 用户指南-SpNU151m "。 align()和 PALIGN()都是可以接受的。但是,编译的.data 不是8字节对齐的,并且.map 甚至没有刷新。

Code Composer Studio 版本:10.0.00010

请帮您了解具体情况、谢谢!


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

    在链接器命令文件中读取编译器文档 alert()或 PALIGN()仅控制输出段的对齐。 即不控制输入段上的对齐、这些输入段组合在一起形成输出段。

    输入段与链接器对齐的旧线程 表示在链接器命令文件中无法控制输入段对齐。

    您是否能够在源代码中使用 DATA_ALIGN pragma 来指定需要8字节对齐的单个符号的对齐方式?

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

    您好、Shunyun、

    请阅读以下链接中的注释以了解输入部分 和 输出部分:

    http://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html

    控制输入段对齐的唯一方法是使用  DATA_ALIGN  pragma:

    #pragma DATA_ALIGN(myData, 8)
    char myData[64];