我使用的是CC2642的蓝牙芯片开发项目,是在simple_peripheral_oad_offchip_app_CC26X2R1_LAUNCHXL_tirtos_ccs这个例程的基础上开发自己的项目,我发现一个问题,我测试使用SystemReset();这个api,BLE连接上后,app与开发板断开后,我就调用SystemReset();让板子重启,我发现有时竟然重启失败,想问下,使用SystemReset();这个函数的时候前面需要做什么准备吗,才能保证芯片百分百重启?
Kevin Qiu1:
/! \brief Perform a full system reset. //! //! \return The chip will reset and hence never return from this call. // //***************************************************************************** __STATIC_INLINE void SysCtrlSystemReset( void ) {// Disable CPU interruptsCPUcpsid();// Write reset registerHWREGBITW( AON_SYSCTL_BASE + AON_SYSCTL_O_RESETCTL, AON_SYSCTL_RESETCTL_SYSRESET_BITN ) = 1;// Finally, wait until the above write propagateswhile ( 1 ) {// Do nothing, just wait for the reset (and never return from here)} }不需要做什么准备,也可以用SystemResetSoft();或者HAL_SYSTEM_RESET();