首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果没有MMU,微内核是可能的吗?

如果没有MMU,微内核是可能的吗?
EN

Stack Overflow用户
提问于 2017-01-23 02:49:32
回答 2查看 767关注 0票数 0

在下面的链接中,https://www.openhub.net/p/f9-kernel F9微内核在Cortex M上运行,但是Cortex M系列没有MMU。我对MMU和虚拟内存的了解有限,因此有以下问题。

  1. 对于没有MMU的每个进程,如何防止整个物理内存的可见性?
  2. 有没有可能在没有MMU的情况下使用一些静态内存设置来实现隔离。(芯片RAM中有足够的内存来运行我的应用程序和内核,只需为有限的进程设置不同的硬编码内存区域)。但我还是不知道这会妨碍进入吗?
EN

回答 2

Stack Overflow用户

发布于 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微内核中的内存管理可以分为三个概念:

  1. 内存池,它用特定的属性表示PAS的区域(在mem映射表中硬编码)。
  2. 绑定到特定线程的页的地址空间排序列表。
  3. 灵活的页面-与L4中的传统页面不同,fpage代表的是MPU区域。
票数 1
EN

Stack Overflow用户

发布于 2018-11-28 16:22:02

是的,但是..。

根本不需要MMU,事情就变得不那么方便和灵活了。实际上,任何提供某种形式的隔离(例如MPU)的东西都可能足以使系统工作--假设您确实需要隔离。如果您出于某种原因不需要它,并且只希望内核执行调度,那么内核也可以不使用MMU或MPU来完成这个任务。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41798592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档