TI中文支持网
TI专业的中文技术问题搜集分享网站

MSPM0G3507: MCU支持的几种复位方式中哪些是可以改变非初始区的数据?

Part Number:MSPM0G3507

我修改SCT文件开辟了一个64字节的NOINIT区域RAM,用于复位后不需初始化用。如图所示:

  

测试发现使用内核中自带的NVIC_SystemReset()函数强制MCU复位,NOINIT区域的数据的确不改变;但使用复位管脚复位以及使用MSPM0库函数(DL_SYSCTL_RST_CPU、DL_SYSCTL_RESET_BOOT、DL_SYSCTL-RESET_POR)有时候发现会改变NOINIT区域内容。想确认哪几种复位不改变NOINIT内容?

Yale Li:

这些非初始区是被分配在了RAM,RAM的特性就是掉电易失。所以掉电之后再上电,这块区域的值的结果是不可预料的。

未被初始化仅仅是指编译完成后、上电之前没有给定值。这部分的值是在程序运行期间被赋值的。

执行内核自带的NVIC_SystemReset()函数,NOINIT区域的数据没有被改变,是因为这个函数执行的复位仅仅是软件层面的。

建议看一下TRM的2.4.1.1 Reset Levels:

,

游泳的雨:

这里面没有写明是否会改变NOINIT区,我就想知道单片机一直供电正常,通过程序实现的各种复位方式,哪些会改变NOINIT区

赞(0)
未经允许不得转载:TI中文支持网 » MSPM0G3507: MCU支持的几种复位方式中哪些是可以改变非初始区的数据?
分享到: 更多 (0)