大家好、
当 启用 MPU 以进行调试寄存器 NMI 审查时、LM 闪存编程器在闪存写入特定寄存器期间似乎被视为 USR 权限。 配置 NVIC_MPU_attr 寄存 器(PRv:RW、USR=None)会在使用复位 MCU 执行闪存写入后(选中编程框后)导致 MCU 突然死亡、但仅在执行特定应用程序时发生。 MCU 崩溃后(第二 个 SOFTRST)、单击 LMFlash 硬件复位按钮可清除崩溃事件条件、直到下次固件更新。 之后 、如果您不 再次更新固件、则 MCU 可以进行全天 POR、而不会使应用崩溃。 授予软件 权限 RW 访问权限的原因似乎基于安全性、在我看来、我们 不应 授予 USR (黑客)任何此类权限。
提供完整的 Cortex-M USR 软件 RW 权限可停止 应用程序运行时 突然死亡综合症! 在 未配置寄存器、 USR (无) 何时发出 SFTRST 时、为什么某些外设勘误表问题会被视为与 POR 相关的事件?
/*启用 Cortex-M 内存保护单元。 PRIV_DEFAULT: *在特权模式下启用默认存储器映射、 *在未定义其他区域时启用。 HARDFLT_NMI:在 硬故障或 NMI 异常处理程序中启用* MPU。 *如果未启用此选项、则 MPU 将被禁用、同时 *在这些异常处理程序中*应用默认 的*内存映射。 // map_MPUEnable (MPU_CONFIG_PRIV_DEFAULT | MPU_CONFIG_HARDFLT_NMI); // MPU 属性软件特权模式,RW 完全访问*/ HWREG (NVIC_MPU_ATtr)= NVIC_MPU_ATTR_AP_RW_RW; //NVIC_MPU_ATTR_1000000 (NVIC_MPU_AP_TR_RAW) :0x0RW (0x0W_PRU_AP_RAW):