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.

[参考译文] TM4C123GH6PM:MPU 问题

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1272188/tm4c123gh6pm-mpu-problem

器件型号:TM4C123GH6PM

大家好、

(1)是否可以使用"void MPURegionSet (uint32_t ui32Region、uint32_t ui32Addr、uint32_t ui32Flags)"API 函数来配置特权和用户访问权限?   在 TM4C123GH6PM 微控制器上启动后开始在主函数中编写代码时、客户不确定他们是处于用户模式还是特权模式。

(2)使用"mpu_RGN_PERM_PRV_RO_USR_NO"时、芯片似乎变为只读、而使用"mpu_RGN_PERM_PRV_RW_USR_NO"时、它变为可读和可写。 客户似乎处于特权模式。 您能否帮助说明如何切换 更亮的模式以测试用户模式下的 MPU 设置?

(3) MPU 是否可以限制 TM4C123GH6PM 微控制器上的电路内仿真器(ICE)的行为? 例如、如果使用"mpu_RGN_PERM_PRV_RO_USR_NO"对其进行配置、这是否可以防止使用 ICE 将数据下载到闪存或对闪存进行编程?

您能帮助检查这个问题吗? 谢谢。

此致、

切里

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    (1)可以使用"void MPURegionSet (uint32_t ui32Region、uint32_t ui32Addr、uint32_t ui32Flags)" API 函数来配置权限和用户访问权限?   在 TM4C123GH6PM 微控制器上启动后开始在主函数中编写代码时、客户不确定他们是处于用户模式还是特权模式。

    您好、Cherry:

     有关特权级和非特权级的说明、请参阅数据表中的编程模型。 复位后、处理器处于具有 特权访问权限的线程模式。 该软件可以使用所有的指令、并且可以访问所有的资源。 要更改为非特权访问、软件可以对 CONTROL 寄存器进行编程。  

      MPURegionSet() AP 被用于 MPU 将内存映射划分为若干个区域,并定义存储器的位置、大小、访问权限和内存属性。
    每个区域。 有关详细信息、请参阅数据表中的 MPU 部分。  

    [报价用户 id="496057" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1272188/tm4c123gh6pm-mpu-problem "]

    (2)使用"mpu_RGN_PERM_PRV_RO_USR_NO"时、芯片似乎变为只读、而使用"mpu_RGN_PERM_PRV_RW_USR_NO"时、它变为可读和可写。 客户似乎处于特权模式。 您能否帮助说明如何切换 更亮的模式以测试用户模式下的 MPU 设置?

    [/报价]

    MPU_RGN_PERM_PRV_RO_USR_NO 表示您设置的区域仅在特权模式下可读访问、用户无权访问。  MPU_RGN_PERM_PRV_RW_USER_NO 表示该区域在特权模式下是可读写访问的、没有用户访问权限。  

    要切换到用户模式、您需要如前文所述对控制寄存器进行编程。

    [报价用户 id="496057" url="~/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1272188/tm4c123gh6pm-mpu-problem "]

    (3) MPU 是否可以限制 TM4C123GH6PM 微控制器上的电路内仿真器(ICE)的行为? 例如、如果使用"mpu_RGN_PERM_PRV_RO_USR_NO"对其进行配置、这是否可以防止使用 ICE 将数据下载到闪存或对闪存进行编程?

    [/报价]

     

    我认为这不会起作用。 调试器处于特权模式、因此 MPU 无效。 您必须为 DBG1和 DBG0位编程 BOOTCFG 寄存器以禁用 JTAG 访问。 一旦被禁用、重新启用 JTAG 访问的唯一方法是完成完全解锁操作、这将对器件进行批量擦除。