This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] EK-TM4C1294XL:软件特权模式

Guru**** 2595805 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/741057/ek-tm4c1294xl-software-privilege-mode

器件型号:EK-TM4C1294XL

大家好、

当   启用 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): 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    当您对闪存进行编程时、它应该与 MPU 设置无关。 假设您在闪存中对地址位置进行编程、写入该位置的不是 CPU。 执行此编程任务的是闪存控制内的 FSM (闪存状态机)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Charles、

     最后一个 HWREG 设置 RW 软件权限 、允许 用户访问 数据表中所述的受保护寄存器。 由于某种原因、授予 RW 权限在 固件更新后停止突然死亡、因此看起来是这样。  模式 为 2 LMFlash 复位 通常会在固件更新后阻止初始运行时崩溃。 在 所有外设时钟被启用后、NMI 引脚 PD7被用于一个 AINx、 针对 睡眠时钟门控进行设置。 在时钟门控 设置为 true 之后、ADC 在配置之前被复位。

    该初始运行时 崩溃通常不是在上电后发生的、而是在今天发生的、 也许 是 MCU 复位 问题的关键?   通过 带状电缆和 将  470欧姆重置到 20K 上拉 MCU 复位引脚、100N 接地的 EKEVM ICDI JTAG 关闭板。