工具与软件:
IAR .icf 文件通过 RAM 中的矢量表定义存储器位置。 它位于 RAM 的开头、长度为1024字节。
然而、这个存储器部分 被设置为全00s、并且从不更新到矢量表的内容。 有可能将其删除以恢复1024字节的 RAM。
能否就如何做到这一点提供一些建议?
谢谢!
随附该文件以供参考:
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.
工具与软件:
IAR .icf 文件通过 RAM 中的矢量表定义存储器位置。 它位于 RAM 的开头、长度为1024字节。
然而、这个存储器部分 被设置为全00s、并且从不更新到矢量表的内容。 有可能将其删除以恢复1024字节的 RAM。
能否就如何做到这一点提供一些建议?
谢谢!
随附该文件以供参考:
客户似乎了解了更多有关此问题的信息。 您能评论一下并提供一些意见吗?
从0x2000 0000到0x2000 0400、RAM 中有一个未使用 的部分供用户使用、该部分原本希望分配给向量表。
RAM 矢量表实际上在中的驱动程序文件 interrupt.c 中分配
C:\ti\simplelink_lowpower_f3_sdk_8_10_01_02\source\ti\devices\cc23x0r2\driverlib\interrupt.c
他们认为 vtable 位于 RAM 的开头、因为.icf 文件中有"place in RAM"命令。
放置在 RAM{块 VTABLE、
块 RWDATA、
last section .heap_start};
但`映射文件显示以下内容:
"P3": 放置在[从0x2000'0000到0x2000'6fff]{
块 VTABLE、块 RWDATA、最后一段.heap_start };
此外、还有一个问题:
VTABLE 0x2000'6500 256 0x8c
.ramVecs uninit 0x2000'6500 256 0x8c interrupt.c.obj [25]
检查存储器后、填充第0x2000'6500节。
现在、应用程序正在分配足够的存储器、以进入0x2000 0000至0x2000 0400区域、现在就填充了一个信任为空的区域。
谢谢!