器件型号: 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