问题记录:华大 HC32F460 切换运行模式导致宕机

现象描述

  • 从高速/超高速模式向超低速模式切换时 mcu 异常死机

基础信息

  • 当前使用华大 2.2.0 版驱动程序
  • 当前使用华大 1.2.1 版参考手册

原因分析

通过调试发现每次运行至 M4_SYSREG->PWR_PWRC2 赋值时程序就会跑飞😶

电源模式控制寄存器 2

hc32f460_pwc.c
en_result_t PWC_HS2LS(void)
{
...

M4_SYSREG->PWR_PWRC2 = 0xE1U;
M4_SYSREG->PWR_MDSWCR = 0x10U;

...
}

en_result_t PWC_HP2LS(void)
{
...

M4_SYSREG->PWR_PWRC2 = 0xD1U;
M4_SYSREG->PWR_MDSWCR = 0x10U;

...
}

瞅了一眼《参考手册 Rev1.2.1》好像也没啥问题,又看了《参考手册 Rev1.3》后,我得发…🙄!

两版手册竟然不一样!

Rev1.2.1

运行模式的切换流程(Rev1.2)

Rev1.3.0

运行模式的切换流程(Rev1.3)

这妥妥的是华大的锅了…