Cortex-M7仍然没有内存管理单元MMU,而linux的内存管理机制高度依赖MMU;还是只能运行采用实存储器管理策略的uCLinux,不支持完整的linux但是可以支持uclinux
uClinux从Linux 2.0/2.4内核派生而来 [1] ,沿袭了Linux的绝大部分特性。它是专门针对没有MMU(内存管理单元)的CPU,并且为嵌入式系统做了许多小型化的工作。它通常用于具有很少内存或Flash的嵌入式操作系统。在GNU通用许可证的保证下,运行uClinux操作系统的用户可以使用几乎所有的Linux API函数。由于经过了裁剪和优化,它形成了一个高度优化,代码紧凑的嵌入式Linux。它具有体积小、稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持,以及丰富的API函数等优点。uClinux与Linux在兼容性方面表现出色,uClinux除了不能实现fork()外,其余uClinux的API函数与标准Linux完全相同。
ARM Cortex-A系列处理器广为认知,严格来说它属于应用处理器,针对高性能移动应用。Cortex-M、Cortex-R则是ARM旗下的另外两个主力产品,都针对嵌入式,前者属于微型控制器(M),后者属于实时处理器(R)。
Cortex-A、Cortex-M/R最大的不同就是后两者没有内存管理单元(MMU)(M/R带有大空间片上的RAM,内核直接操作片上RAM。A系列则有MMU内存管理单元,能管理外部的DDR,EMMC,SD卡等存储器,带有很小的片上RAM,一般还不对用户开放)。它的主要任务是在处理器、内存之间架起一座桥梁,执行物理地址、虚拟地址转换,Linux(Android)、Windows、Mac OS X、iOS等通用目的操作系统都需要它才能正常工作。
Cortex-M/R搭配的则是实时操作系统(RTOS)。