单片机为什么不能跑Linux


单片机-Cortex M的定位
单片机,常被称为微控制器(MCU)
比较常见的STM32单片机,它的CPU采用的ARM公司的Cortex-M系列的内核设计。
其实常说的单片机开发,即MCU开发,或者说就是Cortex-M开发。

Cortex M的定位
ARM处理器的体系结构定义了指令集(ISA)和基于这一体系结构下处理器的模型。ARM的指令集从ARMv1发展到今天的ARMv9。

ARMv7开始,其指令集架构变成了3种款式

Cortex-A:高性能的处理器级平台,性能比肩计算机。
Cortex-R:定位应用于高端嵌入式系统,高可靠及高时效性。
Cortex-M:用于深度嵌入、定制的嵌入式系统。Cortex-M的处理器没有内存管理单元MMU。


内存管理单元MMU
负责虚拟地址到物理地址的映射,并提供硬件机制的内存访问权限检查。在多用户,多进程的操作系统中,MMU使得各个用户进程都有独立的地址空间。

操作系统
一般将操作系统分为实时操作系统和非实时操作系统
实时操作系统大多为单进程、多线程(多任务),所有线程共享一套物理地址空间,不需要MMU,例如VxWorks、FreeRTOS。
Linux系统属于非实时操作系统,多进程是主要的特点。

总结
Linux系统依赖于MMU,M系列没有MMU,可以到A系列上开发Linux。


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注