1、关于复位
说到复位,我们都不会陌生,对于一个MCU系统,复位电路是必不可少的一部分。复位的种类有很多:上电复位、低电压复位、引脚复位、看门狗复位、软件复位等等。本文说的内核复位是软件复位的一种。
Cortex-M3内核芯片提供了两种软件复位,分别是系统复位和内核复位。
2、系统复位和内核复位的区别
内核复位:只复位内核处理器,而不复位外设如GPIO、Timer、UART、Flash等的寄存器。
系统复位:既复位内核处理器,又复位外设寄存器。
下面分别是Cortex-M3应用程序中断及复位控制寄存器(AIRCR)配置图,从图中可以看出,置位AIRCR寄存器中的SYSRESETREQ位(位偏移:2),即可实现系统复位;置位VECTRESET位(位偏移:0),即可实现内核复位。
系统复位在ARM官方的库文件中都有提供相关的函数,用户直接调用即可。官方给出的系统复位函数定义如下所示:
内核复位在ARM官方的库文件中没有相关的函数,需要用户自行编写。Cortex-M3的内核复位函数编写如下:
|