【MA35D1】为什么RTP复位后数组没有初始化初始值

蔡芳芳 |浏览185次
收藏|2023/07/03 10:20

满意回答

2023/07/03 10:32

我做了实验,例程如附件。

1)如果在linux 下 Echo Start,Echo Stop再Echo Start,这样数组是可以初始化初值的。

2)如果在Keil下reset或者用WDT2 Reset RTP Only,那么数组的初值变为了程序中最后修改的值。解决方法如下:

根本原因是RTP代码中定义的ROM区域其实是SRAM或者DDR,是可以修改的。解决方法是设置不同的+ RW,+ZI的LD Address和EXE Address,可以参考附件的sct文件。数组可以不指定地址,或者指定到 +RW.+ZI的区域,这样RTP复位之后回去LR Address获取未修改的初始值。

main.zip

WDT_TimeoutWakeupAndReset_sct.zip

 

qwang

其他回答(0)
0人关注该问题
+1
 加载中...