在下面的链接中,https://www.openhub.net/p/f9-kernel F9微内核在Cortex M上运行,但是Cortex M系列没有MMU。我对MMU和虚拟内存的了解有限,因此有以下问题。
发布于 2017-02-05 11:20:30
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微内核中的内存管理可以分为三个概念:
发布于 2018-11-28 16:22:02
是的,但是..。
根本不需要MMU,事情就变得不那么方便和灵活了。实际上,任何提供某种形式的隔离(例如MPU)的东西都可能足以使系统工作--假设您确实需要隔离。如果您出于某种原因不需要它,并且只希望内核执行调度,那么内核也可以不使用MMU或MPU来完成这个任务。
https://stackoverflow.com/questions/41798592
复制相似问题