microblaze 初始化 MMU 相关寄存器
时间: 2023-07-23 22:09:50 浏览: 59
MicroBlaze 的 MMU 相关寄存器包括:
1. Control Register(CR):控制寄存器,用于控制 MMU 的行为。
2. Translation Table Base Register(TTBR):页表基址寄存器,用于存储页表的起始地址。
3. Context Register(CTX):上下文寄存器,用于存储当前进程的上下文信息。
4. Domain Access Control Register(DACR):域访问控制寄存器,用于控制内存访问的权限。
5. Fault Status Register(FSR):故障状态寄存器,用于存储 MMU 产生的故障信息。
MicroBlaze 初始化 MMU 相关寄存器的步骤如下:
1. 将 CR 寄存器清零,禁用 MMU 功能。
2. 配置 TTBR 寄存器,将其设置为页表的起始地址。
3. 将 DACR 寄存器设置为 0,表示所有内存访问都是合法的。
4. 将 CR 寄存器设置为合适的值,启用 MMU 功能。
下面是一段示例代码,用于初始化 MicroBlaze 的 MMU 相关寄存器:
```
// Disable MMU
mfs r1, rmsr // Read MSR into r1
andi r1, r1, ~XREG_MSR_EE // Disable interrupts
mtsr r1, rmsr // Write MSR back
// Configure TTBR
lis r1, (PAGE_TABLE >> 16) & 0xFFFF
ori r1, r1, PAGE_TABLE & 0xFFFF
mts r1, r19
// Configure DACR
li r1, 0
mts r1, r20
// Enable MMU
mfs r1, rmsr
ori r1, r1, XREG_MSR_EE
mtsr r1, rmsr
```
其中,r19、r20 分别为 TTBR 和 DACR 寄存器的编号,PAGE_TABLE 为页表的起始地址。该代码将 MMU 禁用,配置 TTBR 和 DACR 寄存器,然后启用 MMU。