0 參考資料
STM32MP13xx參考手冊.pdf
1 使用寄存器實現軟件復位
1.1 復位電路概述
重點關注下面標紅的路線:
通過這條路線可以清楚看到,我們可以通過設置RCC_MP_GRSTCSETR寄存器讓RPCTL(復位脈沖控制器)給NRST(硬件復位引腳)一個復位脈沖信號,從而讓軟件實現硬件復位。
1.2 RCC全局復位控制設置寄存器描述
通過設置RCC_MP_GRSTCSETR寄存器的bit0為1即可通過軟件實現硬件復位。
1.3 實踐
#define RCC_MP_GRSTCSETR_MPSYSRST_Pos (0U)
#define RCC_MP_GRSTCSETR_MPSYSRST_Msk (0x1UL << RCC_MP_GRSTCSETR_MPSYSRST_Pos) /*!< 0x00000001 */
#define RCC_MP_GRSTCSETR_MPSYSRST RCC_MP_GRSTCSETR_MPSYSRST_Msk /*!< System reset Set by software, cleared by hardware. */
/*** @brief CPU復位* */
void cpu_reset(void)
{RCC->MP_GRSTCSETR = RCC_MP_GRSTCSETR_MPSYSRST;
}
stm32MP135的HAL庫已經有RCC_MP_GRSTCSETR寄存器的定義,我們只需要將bit0設置為1即可觸發硬件復位。