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.

[参考译文] F29H850TU:C29 编译器在繁忙循环中永远挂起

Guru**** 2800955 points

Other Parts Discussed in Thread: TI-CGT

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1611978/f29h850tu-c29-compiler-hangs-forever-in-busy-loop

器件型号: F29H850TU

我遇到了一个 ti-cgt_c29_2.1.0.STS 永远挂起的问题。 最小的示例文件为:

// test.c
void test(int instance) {
    *((volatile int *)(0x1000 + (instance * 16))) = 0;
}

使用命令编译的函数

~/ti/ti-cgt-c29_2.1.0.STS/bin/c29clang -g -c -w test.c 

这会导致编译器永远不会返回、并占用整个 CPU 内核。 有趣的是、这似乎与实例乘以的值相关。 这发生在值 16、0x20、0x40、0x80 等情况下。 但似乎没有之间的(虽然我没有检查每一个价值). 此外、任何低于 0x1000 的值编译都可以正常、但任何大于 0x1000 的值都会导致该问题。 这也发生在每个优化级别上、-O0、-O1、-O2 或-O3 之间没有区别。  

ti-ctg-c29_2.0.0.STS 不会发生这种情况。

操作系统是 Ubuntu 24.04.1。

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

    感谢您将此问题通知我们并提交简明的测试案例。  编译器在编译时不会挂起。  相反、它会崩溃。  我提交了条目 EXT_EP-13191 以对其进行调查。  欢迎点击这个链接。  描述模糊。  一旦更好地理解细节、说明将更新为更具体的。

    谢谢。此致、

    -乔治