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.

[参考译文] TMS320F280039:如何定义结构变量按 4 个字节对齐?

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1652028/tms320f280039-how-to-define-the-struct-variable-is-aligned-by-4-bytes

器件型号: TMS320F280039

您好的团队、

我向我的客户询问这个问题。

因为 RAM 空间不足、所以它们会优化内存分配。

最初、他们在 GSRAM 中定义了一个与 CAN 相关的结构变量、并希望将其移至 LSRAM。

但在修改后、CAN 通信无法正常工作、代码会耗尽(CAN 相关函数不使用 DMA 或 CLA、因此在我看来、此结构变量可以放置在 GSRAM 和 LSRAM 中)

因此、我假设可能是结构变量未按 4 个字节对齐。 我要求他们做以下修改:

  1. 在 cmd 中、定义 ALIGN (4)
  2. pragma DATA_ALIGN (canMsgTabPublic、4) 以定义 canMsgTabPublic

上述修改是否正确?

完成上述修改后、CPU 可以周期性地进入 ISR、但 CAN 通信仍然不良

您对此有何评论?

BRS

Shuqing

 

 

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

    尊敬的 Shuqing:

    是否可以共享代码?

    谢谢、

    IRA