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.

[参考译文] TMS570LC4357-MPU:针对不存在的 EP 区域对 R5F CP15 进行了编程时的行为?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1623726/tms570lc4357-ep-behavior-in-case-r5f-cp15-is-programmed-for-an-mpu-region-that-does-not-exist

器件型号: TMS570LC4357-TMS570LC4357 EP

团队、
TMS570LC43x TRM SPNU563 定义了 8 个 MPU 区域(请参阅第 478 页 11-12)。
如果软件为不存在的区域(如 9、10、13 等)配置 CPU CP15、会发生什么情况?

以下是执行完整 CP15 INIT(特定存储器区域的基地址,大小和访问权限)的相关 asm 代码示例:

 选择 MPU 区域 13
 MOV r0、 #13
 MCR P15、#0、r0、C6、C2、 #0
 通过对系统控制协处理器 (P15) 进行协处理器寄存器写入来选择 MPU 区域 13。

 2.设置区域基址
 LDR r0、BASEADDRESS
 MCR P15、#0、r0、C6、C1、 #0
 从标签 BASEADDRESS 加载基地址、并将其写入 MPU 区域基地址寄存器。

 3.配置内存属性
 MOV r0、#0x0004
 ORR r0、r0、#0x1300
 MCR P15、#0、r0、C6、C1、 #4.
 设置存储器属性(得到的值为 0x1304):
 -严格排序的内存(没有事务的重新排序)
 -共享(可从多个处理器/主机访问)
 -所有权限模式下的读/写权限
 -无执行权限

 4.设置区域大小
 movw r0、#0x2F
 MCR P15、#0、r0、C6、C1、 #2.
  启用区域 A 16MB 区域

- CPU CP15 在 TMS570 的上下文中如何工作?  

EMIF 4 上连接外部硬件(将 CE4CFG 编程为 0xC4600301)。

-在 EMIF 级别会发生什么?  

提前感谢!

Anthony

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

    尊敬的 Anthony:

    当在 TMS570LC43x 上配置不存在的 MPU 区域(如区域 13)时:

    1. 配置抑制:TMS570LC43x 仅支持 TRM SPNU563 中定义的 8 个 MPU 区 (0-7)。 任何配置超出此范围的区域(例如区域 13)的尝试都将被硬件忽略。

    2. 无错误生成:当写入不存在区域的寄存器时、CP15 协处理器可能不会产生任何显式错误或异常。 MCR 指令将完成、但配置不会生效。

    为了正确保护 EMIF 4 存储器、请配置其中一个有效的 MPU 区域 (0-7) 而不是区域 13、以确保硬件实际实现保护。

    --
    此致、
    Jagadish。