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.

[参考译文] 编译器/DK-TM4C129X:TI ARM汇编器.ALIGN指令中断

Guru**** 2524550 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/593972/compiler-dk-tm4c129x-ti-arm-assembler-align-directive-broken

部件号:DK-TM4C129X

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

e2e.ti.com/.../alignProblem.s

附加的程序集文件向 节"rodata"发出.word,.short和.byte指令数据。  在发出每个项目之前,".align"指令尝试强制字节对齐。  但是,这些工具坚持将每个输出项目与相关边界对齐。  我已经尝试放弃"1"参数,并且文件顶部只有一个".align"指令,结果相同。  如何在 不填充的情况下生成对齐字节的数据流?  我正在运行CCS 7.1 .0,并启用了链路时间优化。  谢谢。

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

    通常,当我发布回复时,我非常确信我的答案是正确的。  这次情况并非如此。  我仍在等待我提出的解决方案是否正确的确认。  我不是让你等到明天再等待,而是决定告诉你我现在知道的情况。

    我很确定答案是改变一些类似的东西...

    第036号:
    对齐1.
    字节115
    l038:
    对齐1.
    简短106. 

    至...

    第036号:
    位115,8
    l038:
    位106,16 

    在.bits指令中,第一个操作数是值,第二个操作数是以位为单位的大小。  它将值打包在内存中。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    感谢您的回复。 但是,我决定使用此汇编文件重新编写代码,以允许所有".word"指令并解决该问题。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    汇编程序手册中将此字段陈述为.word:"每个值由放置在32位字中
    并在单词边界上对齐。"
    因此无法将其与.word "取消对齐"
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我确认,我在之前的帖子中讨论的.BITS解决方案是,考虑到所有因素,最适合此情况的解决方案。

    谢谢,此致,

    -George