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.
工具/软件:TI C/C++编译器
您好!
3个月前报告了相关问题、但尚未计划发布目标版本来纠正此错误。
这对我们来说是非常重要的,因为我们已经失去了一百个字,我们需要一些地方来继续发展我们的系统。
我能否知道修正计划在哪个版本上进行?
谢谢
不幸的是,我们不能完全理解这个问题的严重性。 我认为问题主要是由于 C I/O 缓冲区的对齐而浪费的18个字、即.cio 段。 因此,在 SDOWP 中的加入没有得到高度优先。
现在我们了解到您的问题是由数据段阻塞引起的。 它影响的段比.cio 多。 有关此主题的背景信息、请搜索 C28x 编译器手册中标题为数据页(DP)指针负载优化的子章节。
在我们进一步详细介绍时、请耐心等待。
谢谢、此致、
乔治
我们计划向编译器添加一个新功能、以解决因数据分块而导致内存丢失的问题。 新变量属性 NOBLOCK 告诉编译器不会阻止变量、并且推定该变量的位置可以在任意点跨越页边界。 语法将类似于...
int global_array[100]__attribute__((NOBLOCK));
此功能将首先在计划于10月初推出的版本18.9.0.STS 中提供。 它还将在定于11月初推出的版本18.1.4.LTS 中提供。 要了解 STS 和 LTS 版本之间的区别、请参阅文章 编译器版本号及其含义。
谢谢、此致、
乔治
只对全局或静态数据变量应用 NOBLOCK。 它对局部变量没有影响。
将 NOBLOCK 应用于数组以及包含数组的任何结构。 这将避免数据存储器中大部分未使用的数据间隙、这些间隙来自数据阻断、同时导致很少(通常没有)额外的指令来加载 DP 寄存器。 如果由于数据分块而仍然丢失大量数据存储器、请对大型结构应用 NOBLOCK。 我很确信、在典型代码中、这就足够了。 我有兴趣听取这样做未能解决问题的案例。
谢谢、此致、
乔治