主题中讨论的其他器件:TMS570LS3137、 TMS570LC4357、 HALCOGEN
大家好、
在我的项目中、我想将一些变量值存储在 RAM 中、以便在外部看门狗复位引起的复位后再次读回它。
为此、我在段配置和存储器映射中创建了一个专用段、并保留了 RAM 的一部分作为 RAMNONINIT。 该方法在另一个上的 TMS570LS3137的不同项目中成功使用。
对于 TMS570LC4357-EP、此方法不起作用。
如何防止丢失存储在 RAMNOINIT 存储器中的数据?
最恰当的考虑。
Domenico
按照我的 C 源文件中的指令:
#pragma DATA_SECTION (Watchdog_ResetCounter_g、".section_noinit")
静态看门狗 ResetCounter_t Watchdog_ResetCounter_g;
按照我的链接器设置进行操作:
/*------------------ *
/*链接器设置 */
--retain="*(.intvecs)"
堆0x800
/*------------------ *
/*内存映射 */
存储器{
引导程序 (X) :origin=0x00000000 length=0x00000020
FLASH0 (RX):origin=0x00000020 length=0x001FFFC8
FLASH1 (RX):origin=0x00200000 length=0x00200000
堆栈 (RW):origin=0x08000000 length=0x00001300
RAM (RW):origin=0x08001300 length=0x0007E000
版本信息 (R) :origin=0x001FFFE8 length=0x00000018
RAMNONINIT (RW):origin = 0x807F300,length = 0xD00
}
/*------------------ *
/*段配置 */
剖面{
.intvecs:{}>向量
.text :{}> FLASH0| FLASH1
.const :{}> FLASH0| FLASH1
.cinit :{}> FLASH0| FLASH1
.pinit :{}> FLASH0| FLASH1
.section_versioninfo :{}> versioninfo
.bss :{}> RAM
.data :{}> RAM
.sysmem :{}>RAM
.section_noinit: > RAMNONINIT、type=NOINIT
}
/*------------------ *
