1 PPB内存映射总览
由Cortex-M7的内存映射模型可知,0xE000_0000~0xE00F_FFFF地址空间为私有外设总线 (Private peripheral bus,PPB)的内存区域,其具体的地址映射如表1所示。
表1 PPB寄存器内存映射
其中,注释后缀的相关含义如下:
a,表示该外设是可选的;
b ,软件可以通过读MPU Type Register(位于地址0xE000ED90),以确认是否配有MPU;
此外,PPB的内存区域为不可执行(Execute Never,XN)的强排序内存区域(Strongly-ordered memory),如果尝试对该内存区域取指执行,会直接触发错误异常。
2 寄存器通用描述
2.1 寄存器类型(register type)
寄存器类型描述如表2所示:
RW | Read and write,可读可写 |
RO | Read-only,只读 |
WO | Write-only,只写 |
RAZ | Read As Zero,读回0 |
WI | Write Ignored,写忽略 |
2.2 寄存器访问权限
寄存器的访问权限主要有Privileged和unprivileged两种,具体来说:
① Privileged
特权级,只有特权级的软件可以访问该寄存器。这也意味着只有在中断处理函数或特权级的线程模式下才可以访问该寄存器;如果在非特权级线程模式下访问该寄存器,则会直接触发BusFault异常。
② unprivileged
非特权级,特权级和非特权级的软件都可以访问该寄存器。