ARM Cortex-M处理器缺乏MMU,在一些实现中有可选的内存保护单元(MPU),比如STMicroelectronics的STM32F系列。
与其他L4内核不同,F9微核是专为MPU环境设计的,为Cortex M3/M4优化,支持ARMv7保护内存系统体系结构(PMSAv7)模型。PMSAv7兼容系统的系统地址空间由MPU保护。此外,可用的内存通常很小(约256千字节),但是可以借助位显带使用更大的物理地址空间(最多32位)。
MPU保护内存被分成一组区域,并定义了支持实现的区域数。例如,STM32F429提供8个单独的内存区域。在PMSAv7中,最小保护区域大小为32字节,最大保护区域大小为4GB。MPU通过以下方式提供完全访问:
保护区重叠保护区访问权限将内存属性导出到系统MPU不匹配和权限冲突调用可编程优先级MemManage故障处理程序。
F9微内核中的内存管理可以分为三个概念:
内存池,它用特定的属性表示PAS的区域(在mem映射表中硬编码)。绑定到特定线程的页的地址空间排序列表。灵活的页面-与L4中的传统页面不同,fpage代表的是MPU区域。