ARM存储器之:存储保护单元MPU
编码含义如表15.18所示
表15.18 寄存器c6编码含义
位名称 | 对应位 | 注释 |
起始地址 | [31:12] | 保护域的第一个字节起始地址,具体见表2.18 |
SBZ | [11:6] | 必须设为0 |
Size | [5:1] | 设Size=N,则域尺寸为2N+1,其中11≤N≤31 |
E | [0] | 域使能,E=1使能,E=0禁止 |
关于c6中bits[31:12],因为域的起始要是域大小的整倍数,域最小为4KB,所有域起始地址的bits[11:0]通常为0,不用设置。具体c6中起始地址的设置和c6中Size(bits[5:1])的对应关系如表15.19所示。
表15.19 域尺寸编码
Size(bits[5:1]) | 域尺寸 | 起始地址(bits[31:12]) |
0b00000~0b01010 | 未定义 | - |
0b01011 | 4KB | 无 |
0b01100 | 8KB | bit[12]必须为0 |
0b01101 | 16KB | bits[13:12]必须为0 |
0b01110 | 32KB | bits[14:12]必须为0 |
0b01111 | 64KB | bits[15:12]必须为0 |
0b10000 | 126KB | bits[16:12]必须为0 |
0b10001 | 256KB | bits[17:12]必须为0 |
0b10010 | 512KB | bits[18:12]必须为0 |
0b10011 | 1MB | bits[19:12]必须为0 |
0b10100 | 2MB | bits[20:12]必须为0 |
0b10101 | 4MB | bits[21:12]必须为0 |
0b10110 | 8MB | bits[22:12]必须为0 |
0b10111 | 16MB | bits[23:12]必须为0 |
0b11000 | 32MB | bits[24:12]必须为0 |
0b11001 | 64MB | bits[25:12]必须为0 |
0b11010 | 128MB | bits[26:12]必须为0 |
0b11011 | 256MB | bits[27:12]必须为0 |
0b11100 | 512MB | bits[28:12]必须为0 |
0b11101 | 1GB | bits[29:12]必须为0 |
续表
Size(bits[5:1]) | 域尺寸 | 起始地址(bits[31:12]) |
0b11110 | 2GB | bits[30:12]必须为0 |
0b11111 | 4GB | bits[31:12]必须为0 |
存储器相关文章:存储器原理
评论