eCos初探之redboot重启命令:reset

由AIRCR寄存器定义可知,在Cortex-M3中,有两种方式可以执行软件复位:

该方式下,,复位的作用范围覆盖整个CM3,但不影响内核以外的所有其他电路,所以片上外设和其他电路不受影响。

该方式下,复位操作波及整个芯片上的电路。

3、reset在redboot上的实现

HAL_PLATFORM_RESET()宏实现如下:

#define HAL_PLATFORM_RESET()\{\HAL_WRITE_UINT32(CYGARC_REG_NVIC_BASE+CYGARC_REG_NVIC_AIRCR,\CYGARC_REG_NVIC_AIRCR_KEY|\CYGARC_REG_NVIC_AIRCR_SYSRESETREQ );\for(;;);\}

在此:

_register_ = CYGARC_REG_NVIC_BASE+CYGARC_REG_NVIC_AIRCR = 0xE000E000 + 0xD0C = 0xE000ED0C_value_ = CYGARC_REG_NVIC_AIRCR_KEY | CYGARC_REG_NVIC_AIRCR_SYSRESETREQ = (0x5FA<<16) + (1<<2)

0x5FA是访问该寄存器的钥匙。

for(;;);死循环保证后面的指令不被执行到。

蚁穴虽小,溃之千里。

eCos初探之redboot重启命令:reset

相关文章:

你感兴趣的文章:

标签云: