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.

[参考译文] CCS:TI 16.9 0.0编译器全局变量初始化问题

Guru**** 2535150 points
Other Parts Discussed in Thread: OMAP-L138

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/570759/ccs-ti-16-9-0-compiler-global-variable-initialization-issue

主题中讨论的其他部件:OMAPL138OMAP-L138

工具/软件:Code Composer Studio

大家好,

目前,我下载了新的编译器版本TI 16.9 .........0 LTS,用于我的OMAPL138项目构建。

我在全局变量初始化过程中遇到了问题。 具体而言,

  • 初始化为定义值的全局变量未正确分配给任何变量。 但是,所有变量都使用一些垃圾值进行分配。 下面是我的C文件顶部的初始化序列,它还声明为外部,以便在包含文件中全局可见性。

//全局变量定义
int32 gint32_PostReportEMIFPGA =0,gint32_PostReportDB =0;
uINT32 guint32_POSTReportStartCount =0;
VIData VIDATA_Healthdata;
Int PoolCounter =0;

  • 这个问题只能在 TI 16.9 0 LTS上清楚地看到,我最初是用它来测试的。 为了解决该问题,我回到了TI 5.2 v.8,它在初始化时按预期工作。 我尝试使用 --zero_init=off 和 --zero_init=on 链接器命令来运行两个编译器。 但 TI 16.9 0 LTS的状态与我上面提到的相同。

在上述情况下,新的编译器版本是否需要特别更改?

希望有人能帮忙。

此致,

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    OMAP-L138具有TMS320C674x和ARM926EJ-S 对于C6x,编译器版本16.x.y不存在,因此必须为ARM编译。 TI ARM编译器版本5.2 8和EABI .0.LTS之间的行为应该相同。两个版本默认为16.9 ,而EABI应正确处理所有这些初始化。 您是使用RTS库附带的引导例程(_c_int00),还是使用自定义引导例程?

    您如何知道变量具有垃圾值? 您是否在到达主菜单之前查看它们? 您是否在用CCS监视窗口查看它们? 您是否使用printf或类似的方法打印出值?

    请不要使用--zero_init选项。 请访问 processors.wiki.ti.com/.../Uninitialized_Static_Objects_Not_Set_to_Zero_in_COFF