工具/软件:
尊敬的支持:
我需要在运行时将变量保存在扇区 31 处(0x00007C00、length = 0x00000400,高耐写次数的最后一个扇区) 。
如何为任何其他代码保留这个扇区而不会被编译器覆盖。
此致
Tulsi Das
VP 电子产品。
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.
工具/软件:
尊敬的支持:
我需要在运行时将变量保存在扇区 31 处(0x00007C00、length = 0x00000400,高耐写次数的最后一个扇区) 。
如何为任何其他代码保留这个扇区而不会被编译器覆盖。
此致
Tulsi Das
VP 电子产品。
您好、
您可以执行这样的操作。
MEMORY
{
FLASHVEC (RX) : origin = 0x00000000, length = 0x00000400 //intvecs must always point to 0x0
USER_VARIABLES (RW) : origin = 0x00007C00, length = 0x00000400
FLASH (RX) : origin = 0x00008000, length = 0x00020000
SRAM (RWX) : origin = 0x20200000, length = 0x00008000
BCR_CONFIG (R) : origin = 0x41C00000, length = 0x000000FF
BSL_CONFIG (R) : origin = 0x41C00100, length = 0x00000080
}
但是、FLASHVEC 和 USER_variables 之间的闪存中会有一个间隙。
如果您不需要将变量存储在 0x7C00、那么可以通过将变量放置在 0x400 来消除该间隙。
MEMORY
{
FLASHVEC (RX) : origin = 0x00000000, length = 0x00000400 //intvecs must always point to 0x0
USER_VARIABLES (RW) : origin = 0x00000400, length = 0x00000400
FLASH (RX) : origin = 0x00000800, length = 0x00020000
SRAM (RWX) : origin = 0x20200000, length = 0x00008000
BCR_CONFIG (R) : origin = 0x41C00000, length = 0x000000FF
BSL_CONFIG (R) : origin = 0x41C00100, length = 0x00000080
}
马修
您好、Matthew、
感谢您的答复。 因为我刚开始使用 Microchip 的 TI 控制器、所以我需要对该问题进行更多的澄清。
我将以下代码放在 device_liker.cmd 文件中

当我再次构建它时、它会自动替换回 syscfg。 现在、我停止如下所示的自动更新。 
但是构建项目有错误。

我想我错过了更多的步骤、或者我将建议的闪存更改放置在错误的位置。 您能否详细写出所有缺失的步骤? 如何 在主电源代码中使用“user_variables (RW): origin = 0x00000400, length = 0x00000800“?
此致
Tulsi Das
您好、Matthew、
以下是内存设置中的更正、如所示
但不会影响结果。
此致
Tulsi Das