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即可触发硬件复位。