工具/软件:Code Composer Studio
下面提到的是在链接器文件中编写的用于将存储器分配给持久性变量的代码、
存储器从0x4000地址开始分配、
持久性变量是水表的配置
我的问题是、当我使用新程序对代码存储器进行编程时、所有这些变量都会重置为默认值
在将新代码编程到 FRAM 中时、是否有任何方法可以保留这些变量值
可以修改下面提到的程序、以便我可以将0x4000分配到0x43ff 作为信息存储器、将0x4400以后的代码存储器分配到0x43ff
因此、在将新代码编程到 FRAM 中时、0x4000至0x43ff 存储器段既不会被擦除也不会被覆盖
组(RW_IPE)
{
组(READ_WRITE_MEMORY)
{
//将 USS 配置置于内存顶部
USS_CONFIG:
{
//USS_userConfig.obj (.TI.persistent:checksum16位)
//USS_userConfig.obj (.TI.persistent:checksum8位)
// USS_userConfig.obj (.TI.persistent:app_code_CRC_CCITT)
USS_userConfig.obj (.TI.persistent:gUssSWConfig)
USS_userConfig.obj (.TI.persistent:ussSystemConfig)
USS_userConfig.obj (.TI.persistent:ussMeterConfig)
USS_userConfig.obj (.TI.persistent:ussMeasurementConfig)
USS_userConfig.obj (.TI.persistent:ussPLLConfig)
USS_userConfig.obj (.TI.persistent:ussCaptureConfig)
USS_userConfig.obj (.TI.persistent:ussTriggerConfig)
USS_userConfig.obj (.TI.persistent:ussInterruptConfig)
USS_userConfig.obj (.TI.persistent:ussAlgConfig)
USS_userConfig.obj (.TI.persistent:ussPulseConfig)
USS_userConfig.obj (.TI.persistent:singDualToneConfig)
USS_userConfig.obj (.TI.persistent:gUserConfg)
USS_userConfig.obj (.TI.persistent:gdataloggpara)
USS_userConfig.obj (.TI.persistent:comm_para)
}
.TI.persistent:{}/* for #pragma PERSISTENT */
.cio:{}//* C I/O 缓冲器*/
.sysmem:{}/*动态内存分配区域*/
} PALIGN (0x0400)、RUN_START (fram_rw_start)
组(IPENCAPSULATED_MEMORY)
{
.ipestruct:{}/* IPE 数据结构*/
.ipe:{}//* IPE */
.ipe_const:{}/* IPE 受保护常量*/
.ipe:_isr:{}/* ipe isr */
} PALIGN (0x0400)、RUN_START (fram_IPE_START) RUN_END (fram_IPE_END) RUN_END (fram_Rx_START)
}> 0x4000