单片机为什么不能跑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使得各个用户进程都有独立的地址空间。

单片机为什么不能跑Linux_单片机

操作系统

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

总结

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