这里只讨论内核的软件复位方式。像STM32的备份域复位里面也有软件复位,则不在本文讨论范围。额外提一句,上电复位是完整复位芯片所有东西,包括内核、debug部分、外设、中间逻辑电路状态(模块外部的逻辑电路状态,如果没有复位,也会影响到下次运行),因此需要确保做完全复位时候,应该使用上电复位。
一、cortex-m3
图1来自cortex m3编程手册
(1)SCB_AIRCR寄存器,VECTRESET位
该位只复位内核,不复位debug部分
(2)SCB_AIRCR寄存器,SYSRESETREQ位
该位一般叫做系统复位,该位定义为会复位内核,不复位debug部分,至于是否复位其他部分,比如外设,则由具体的芯片来实现
图1
二、cortex-m0
图2来自cortex m0编程手册
(1)SCB_AIRCR寄存器,VECTRESET位
cortex-m0没有提供这个位,也即cortex-m0没有提供单独复位内核的定义
(2)SCB_AIRCR寄存器,SYSRESETREQ位
参考cortex-m3
图2
三、其他参考
以下图3 图4来自 Cortex-M3-Definitive-Guide-EN.pdf
图3
图4
全部0条评论
快来发表一下你的评论吧 !