请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSPM0G3507 工具与软件:
您好!
我有一个关于内存的问题。 我在程序中标记了两个位置用于参数(HWParam 地址:0x00000400 (R))和数据(ParamConfig 地址: 0x00000800 (RW))。
这些参数在初始化时写入、不应更改。 数据在程序期间被覆盖。
device_linker.cmd
-uinterruptVectors
--stack_size=512
MEMORY
{
IntVectors (RW) : origin = 0x00000000, length = 0x00000400
HWParam (R) : origin = 0x00000400, length = 0x00000400
ParamConfig (RW) : origin = 0x00000800, length = 0x00000400
FLASH (RX) : origin = 0x00000C00, length = 0x0001F400
SRAM (RWX) : origin = 0x20200000, length = 0x00008000
BCR_CONFIG (R) : origin = 0x41C00000, length = 0x00000080
BSL_CONFIG (R) : origin = 0x41C00100, length = 0x00000080
}
SECTIONS
{
.intvecs: > 0x00000000
//Přidáno
.myData : palign(8) {} > HWParam
.controllerData : palign(8) {} > ParamConfig
.text : palign(8) {} > FLASH
.const : palign(8) {} > FLASH
.cinit : palign(8) {} > FLASH
.pinit : palign(8) {} > FLASH
.rodata : palign(8) {} > FLASH
.ARM.exidx : palign(8) {} > FLASH
.init_array : palign(8) {} > FLASH
.binit : palign(8) {} > FLASH
.TI.ramfunc : load = FLASH, palign(8), run=SRAM, table(BINIT)
.vtable : > SRAM
.args : > SRAM
.data : > SRAM
.bss : > SRAM
.sysmem : > SRAM
.stack : > SRAM (HIGH)
.BCRConfig : {} > BCR_CONFIG
.BSLConfig : {} > BSL_CONFIG
}
这是我写入存储器的方式


就像这样、我在程序期间覆盖数据。

但我有一个问题,当数据在程序期间被覆盖时,参数(HWParam addr: 0x00000400(R))也被删除。
覆盖前:

覆盖后:

有人能告诉我为什么数据被删除,即使是为参数创建了一个单独的位置? 此外、如果存储器只能被读取?
感谢您的支持