工具与软件:
您好:
我使用 LFU 静态数组、它们不存在、为什么?

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.
工具与软件:
您好:
我使用 LFU 静态数组、它们不存在、为什么?

尊敬的 Sira:
这里为您提供了一些信息
1.看起来像 txQueue 和 rxQueue 是 int_comm_drv.c 和 meter_comm_drv.c 中定义的静态数组?
答:是的。
上述显示的代码对应于哪个.c 文件?
答案:meter_comm_drv.c.
int_comm_drv.c 的代码 与 meter_comm_drv.c 类似
使用了哪个编译器版本?

使用了哪些编译器选项/设置? (您能否复制粘贴)




最大值
SIRA:
这里是编译器设置。

Q2:如果我 在 const MeterRespCmdTable 数组中添加了新的一个元素、 则报告编译错误:
#30014无法保留符号 MeterRespCmdTable 的地址、因为其大小大于参考 ELF 中的地址。 新符号大小= 256位、而参考符号大小= 192位。
MeterRespCmdTable 是常量数组表、不应是错误。 对吧?
最大值、
您能提供一个测试用例吗? 请参阅此 文章
https://software-dl.ti.com/ccs/esd/documents/sdto_cgt_How-to-Submit-a-Compiler-Test-Case.html
Johnny/Max、
使用测试用例、我能够在 const MeterRespCmdTable 更改大小的情况下重现错误。 我创建了一个 Jira 用于跟踪问题、并将在该问题公开后添加链接。 但是、问题是 在编译器决定避免将常量变量处理为"preserve"之前、大小检查操作有误。 因此、唯一的解决方法是将 MeterRespCmdTable 变量保持为相同大小或标记为属性(更新)。 这将在22.6.2.LTS 中修复
关于 txQueue/rxQueue 的问题、我无法使用提供的测试用例再现。
我的参考构建映射文件具有:
.bss 0 0000b000 00000196 UNINITIALIZED
0000b000 00000079 int_comm_app.obj (.bss)
0000b079 00000041 int_comm_drv.obj (.bss:rxQueue)
0000b0ba 00000041 meter_comm_drv.obj (.bss:rxQueue)
0000b0fb 00000041 int_comm_drv.obj (.bss:txQueue)
0000b13c 00000041 meter_comm_drv.obj (.bss:txQueue)
0000b17d 00000002 meter_comm_app.obj (.bss)
0000b17f 00000001 app_isr.obj (.bss)
.TI.bound:rxQueue
* 0 0000b079 00000117 UNINITIALIZED
0000b079 00000041 int_comm_drv.obj (.TI.bound:rxQueue)
0000b0ba 00000041 meter_comm_drv.obj (.TI.bound:rxQueue)
0000b0fb 00000041 int_comm_drv.obj (.TI.bound:txQueue)
0000b13c 00000041 meter_comm_drv.obj (.TI.bound:txQueue)
谢谢
Greg
以下是 const 大小错误的链接:
sir.ext.ti.com/.../EXT_EP-11935