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.

[参考译文] TMS320F28P650SK:编译器将 CLA 定义/声明的全局/局部变量初始化为零

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1647744/tms320f28p650sk-cla-defined-declared-global-local-variables-initialized-to-zero-by-the-compiler

器件型号: TMS320F28P650SK

尊敬的 champs:

 

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

给定 EABI 输出格式、

对于 CLA 定义/声明的全局/局部变量 、我们知道它们应该在 CLA 任务中进行初始化。

但在 CCS 仿真和下面的.cinit 中、它们似乎在 main 之前初始化为零。

问题:

  1. 是否请确认编译器(如 V22.6.x 和 V25.11.x)会在 main () 之前将 CLA 全局/局部变量初始化为零?
  2. 如果是、则用户只需将它们初始化为非零值。 正确吗?

image.png

 

 

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

    尊敬的 Wayne:

    我已将其重新分配给我们的编译器团队以进行查看。

    此致、

    Delaney

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    ]请确认编译器(如 V22.6.x 和 V25.11.x)是否在 main () 之前将 CLA 全局/局部变量初始化为零?

    是的、如果您使用 EABI 和--rom_model 链接器选项(在本例中为该选项)、则 CLA 全局/静态变量会初始化为零初始化。

    从 C28x 编译器手册中 标题为 C 语言限制:

    如果使用 EABI、链接器会生成一个 cinit 条目、以对非常量全局/静态数据进行零初始化

    如果是、用户只需将其初始化为非零值。 正确吗?

    没错。