ESC
输入关键词搜索文章标题和内容

嵌入式到底学MCU还是Linux?六大岗位路线图+高星开源仓库一次讲透

本文由 linuxROS 整理发布,首发于 linuxros.cn,转载请注明出处。

嵌入式到底学MCU还是Linux?六大岗位路线图+高星开源仓库一次讲透

导读:嵌入式到底有哪些岗位?每个岗位该学什么、去哪学?本文梳理MCU固件、RTOS、Linux驱动、Linux系统、嵌入式AI、物联网六大方向,每个方向配高星学习仓库,告诉你每个方向该看什么仓库、按什么顺序学。如果你更关注架构选型和硬件框图,推荐先看《嵌入式全栈架构全景图:七大方向30+高星开源仓库一次讲透》,两篇互为补充——那篇讲"怎么选",这篇讲"怎么学"。

一、嵌入式岗位全景:MCU和Linux是两条主线

嵌入式不是单一岗位,是整条产业链。写寄存器、调内核、烧固件、推模型——不同环节需要完全不同的技能栈。很多人卡在"嵌入式到底学什么"这个问题上,根本原因是没搞清楚岗位边界。

嵌入式软件岗位大致分两大阵营:MCU方向偏软硬件结合,Linux方向偏纯软件深耕。近几年嵌入式AI和物联网两个交叉方向冒出来,把传统边界搅得更模糊了。

六大岗位的关系和技能依赖:

flowchart TB subgraph MCU方向["🔵 MCU方向"] direction TB M1["MCU固件工程师<br/>C语言 + 寄存器 + 外设"] M2["RTOS开发工程师<br/>调度器 + 内存管理 + 组件"] end subgraph Linux方向["🟡 Linux方向"] direction TB L1["Linux驱动工程师<br/>内核模块 + 设备树 + 调试"] L2["Linux系统工程师<br/>构建系统 + BSP + 裁剪"] end subgraph 交叉方向["🟢 交叉方向"] direction TB A1["嵌入式AI工程师<br/>推理框架 + 量化 + 部署"] A2["物联网工程师<br/>协议栈 + 云平台 + 安全"] end M1 -->|"进阶"| M2 M2 -->|"转方向"| L1 L1 -->|"扩展"| L2 M1 -->|"延伸"| A2 M2 -->|"延伸"| A1 L1 -->|"延伸"| A1 style MCU方向 fill:#E3F2FD,stroke:#1976D2,color:#0D47A1 style Linux方向 fill:#FFF8E1,stroke:#F57C00,color:#E65100 style 交叉方向 fill:#E8F5E9,stroke:#388E3C,color:#1B5E20

二、MCU固件工程师:跟寄存器打交道的底层玩家

岗位画像:跟寄存器打交道,写裸机驱动,调时序波形。中小公司可能还要画原理图、焊板子。门槛不算高,但要求面广——C语言得扎实,电路原理图得能看懂,示波器逻辑分析仪是日常工具。

核心技能:C语言(指针、结构体、位操作)、STM32外设(GPIO/UART/SPI/I2C/ADC/Timer)、中断与DMA、原理图阅读、调试工具(J-Link/ST-Link)。

高星学习仓库:

仓库 Stars 学什么
micropython/micropython \~21.5k MCU固件架构设计,支持STM32/ESP32等多平台
libopencm3/libopencm3 \~2.5k 裸机寄存器操作,无厂商依赖的纯C固件库
ARM-software/CMSIS_5 \~1.5k Cortex-M核心架构,启动流程与寄存器定义
stm32duino/Arduino_Core_STM32 \~2.5k HAL层抽象设计,理解框架如何封装寄存器
ARMmbed/mbed-os \~4.5k 完整HAL抽象层+驱动框架,分层设计参考

学习建议:先从libopencm3入手理解寄存器操作,再用CMSIS_5搞懂Cortex-M启动流程,最后看mbed-os学分层架构。别上来就啃HAL库,先搞清楚寄存器在干嘛。


三、RTOS开发工程师:MCU之上的多任务调度

岗位画像:在MCU基础上引入多任务调度,做复杂产品的固件架构。智能家电、工业控制、汽车电子是主要战场。这个岗位得既懂硬件又懂操作系统原理,比纯MCU岗位门槛高一截。

核心技能:任务调度与优先级反转、信号量/互斥量/消息队列、内存管理(静态分配vs动态分配)、中断管理、定时器与延时机制。

高星学习仓库:

仓库 Stars 学什么
FreeRTOS/FreeRTOS \~5.5k RTOS内核最精简实现,调度器源码必读
RT-Thread/rt-thread \~10k 国产RTOS生态最完整,中文文档齐全
zephyrproject-rtos/zephyr \~15k 工业级架构,支持1000+开发板
eclipse-threadx/threadx \~4.5k 商用级内核,通过SIL4安全认证
littlefs/littlefs \~5.2k 嵌入式文件系统,掉电安全与磨损均衡
RT-Thread/IoT_Board \~1.8k 官方学习套件,从入门到项目实战

学习建议:先啃FreeRTOS源码(就几个C文件),搞清楚任务切换的汇编实现和链表调度机制。然后上RT-Thread做综合项目,它的软件包生态能让你快速搭出完整产品。ThreadX适合想深入安全认证方向的人看。


四、Linux驱动工程师:内核模块与设备树的深水区

岗位画像:写内核模块,调设备树,跟硬件工程师对时序。这是嵌入式Linux方向的核心岗位,需求量大但门槛也高——内核版本迭代快,调试手段有限,一个问题卡三天是常事。

核心技能:内核模块开发(字符/块/网络设备)、设备树编写与解析、platform驱动模型、中断与DMA、调试工具(GDB/kgdb/ftrace/devmem)。

高星学习仓库:

仓库 Stars 学什么
0xAX/linux-insides \~29k 内核深度剖析,从启动到中断到内存管理
sysprog21/lkmpg \~7k 内核模块编程指南,持续更新适配新内核
cirosantilli/linux-kernel-module-cheat \~4k QEMU+Buildroot一键搭建开发环境
martinezjavier/ldd3 \~1.5k 《Linux设备驱动》第三版代码现代化适配
raspberrypi/linux \~11k 真实设备树与平台驱动代码参考

学习建议:先读linux-insides建立内核全局观,再跟着lkmpg动手写第一个字符设备驱动。ldd3是经典但代码过时,用这个现代化适配版。linux-kernel-module-cheat帮你省掉搭环境的时间——驱动开发最烦的就是环境问题。


五、Linux系统工程师:从Bootloader到根文件系统的全链路

岗位画像:负责整个嵌入式Linux系统的构建、裁剪和部署。从Bootloader到内核到根文件系统,从BSP适配到OTA升级,这个岗位吃的是全局把控能力。大厂和方案公司需求最多。

核心技能:Buildroot/Yocto构建系统、U-Boot移植与裁剪、内核裁剪与配置、根文件系统定制、设备树覆盖(dtoverlay)、交叉编译工具链。

来自 linuxros.cn · linuxROS

高星学习仓库:

仓库 Stars 学什么
buildroot/buildroot \~2.5k 一键构建最小嵌入式Linux系统
yoctoproject/poky \~1.8k 工业级BSP与镜像定制框架
Xilinx/linux-xlnx \~1.2k SoC场景完整设备树与驱动实战
linuxboot/linuxboot \~1.5k 用Linux替代UEFI固件,理解启动全链路

学习建议:从buildroot起步,用menuconfig配出一个能跑的最小系统,理解各组件怎么串起来。Yocto学习曲线陡但企业用得多,面试加分。linux-xlnx适合做SoC方向的人深入。


六、嵌入式AI工程师:把模型塞进MCU的跨界玩家

岗位画像:把深度学习模型塞进MCU或边缘设备里跑。这是近三年最火的嵌入式方向,薪资天花板高,但要求也离谱——得既懂嵌入式又懂机器学习,还得会模型量化和算子优化。

核心技能:模型量化(INT8/INT4)、推理框架部署(NCNN/MNN/TFLite Micro)、算子优化(CMSIS-NN汇编加速)、模型转换与裁剪、边缘硬件适配(NPU/DSP/GPU)。

高星学习仓库:

仓库 Stars 学什么
Tencent/ncnn \~22k 移动端推理事实标准,无第三方依赖
alibaba/MNN \~12.5k 端侧推理性能标杆,支持异构计算
apache/tvm \~11k 编译式方案,模型直接编译到MCU裸机
tensorflow/tflite-micro \~2.2k MCU端推理官方方案,TinyML生态核心
tinyml-book/resources \~2.5k TinyML入门最佳教材,配套Arduino实战
microsoft/onnxruntime \~15k ONNX推理引擎,支持多种硬件后端

学习建议:先看tinyml-book建立概念,再用tflite-micro在STM32上跑通第一个模型。进阶看ncnn的算子实现和TVM的编译流程。这个方向更新快,仓库的Issue和PR都是学习素材。


七、物联网工程师:让设备联网上云的通信专家

岗位画像:让设备联网、上云、互相通信。从WiFi配网到MQTT消息推送,从LoRa远距离传输到OTA固件升级,这个岗位横跨协议栈、云平台和嵌入式三块。ESP32是这个方向的主力芯片。

核心技能:WiFi/蓝牙协议栈、MQTT/CoAP/HTTP通信、LoRa/LoRaWAN、OTA升级机制、云平台对接、安全(TLS/证书)。

高星学习仓库:

仓库 Stars 学什么
espressif/esp-idf \~13k ESP32官方SDK,FreeRTOS+组件化架构
espressif/arduino-esp32 \~13.5k Arduino生态入门,快速原型验证
eclipse/mosquitto \~11k 轻量MQTT Broker,C实现可嵌入设备
emqx/emqx \~16k 企业级MQTT Broker,百万级连接
meshtastic/firmware \~4k LoRa Mesh通信固件,离线组网实战
microsoft/IoT-For-Beginners \~15.5k 微软12周IoT入门课程,配套实验代码

学习建议:从IoT-For-Beginners系统入门,再用esp-idf做真实项目。mosquitto自己搭一个Broker跑通MQTT收发。LoRa方向看meshtastic,这个项目把LoRa Mesh的工程实现讲得很清楚。

八、MCU vs Linux vs AI vs IoT:六大岗位横向对比

维度 MCU固件 RTOS开发 Linux驱动 Linux系统 嵌入式AI 物联网
核心语言 C C C C/Shell C++/Python C/Python
硬件依赖 极高 高 高 中 中 中
入门难度 ★★★ ★★★★ ★★★★★ ★★★★ ★★★★★ ★★★
薪资天花板 中 中高 高 高 极高 中高
岗位需求量 大 中 大 中 小(增长快) 大
代表芯片 STM32 STM32/ESP32 i.MX/RK i.MX/RK RK/NPU ESP32
关键仓库 libopencm3 FreeRTOS lkmpg buildroot ncnn esp-idf

九、嵌入式职业发展路径

flowchart TB subgraph 入门阶段["🔵 入门"] direction TB A(["嵌入式入门"]) end subgraph MCU方向["🔵 MCU方向"] direction TB C["MCU固件工程师"] D["RTOS开发工程师"] end subgraph Linux方向["🟡 Linux方向"] direction TB E["Linux驱动工程师"] F["Linux系统工程师"] end subgraph 交叉方向["🟢 交叉方向"] direction TB G["嵌入式AI工程师"] H["物联网工程师"] end subgraph 进阶发展["🟣 进阶发展"] direction TB J["高级固件架构师"] L["内核子系统维护者"] N["AI部署专家"] O["算法工程化"] Q["IoT平台架构师"] end A -->|"选方向"| C A -->|"选方向"| D A -->|"选方向"| E A -->|"选方向"| F A -->|"选方向"| G A -->|"选方向"| H C -->|"1-2年 深耕"| J D -->|"1-2年 深耕"| J D -->|"1-2年 转方向"| E E -->|"2-3年 深耕"| L E -->|"2-3年 转方向"| F G -->|"2-3年 深耕"| N G -->|"2-3年 转方向"| O H -->|"2-3年 深耕"| Q H -->|"2-3年 转方向"| G style 入门阶段 fill:#E3F2FD,stroke:#1976D2,color:#0D47A1 style MCU方向 fill:#E3F2FD,stroke:#1976D2,color:#0D47A1 style Linux方向 fill:#FFF8E1,stroke:#F57C00,color:#E65100 style 交叉方向 fill:#E8F5E9,stroke:#388E3C,color:#1B5E20 style 进阶发展 fill:#F3E5F5,stroke:#7B1FA2,color:#4A148C

十、常见问题

Q1:MCU和Linux方向到底选哪个?

看你的背景和耐心。MCU方向上手快,3个月能做项目,但天花板受限于硬件。Linux方向门槛高,光内核概念就够啃半年,但薪资和成长空间更大。如果时间有限,先聚焦一个方向深耕,别两头都沾。

Q2:嵌入式AI方向值得冲吗?

值得冲,但有前提。你得先有嵌入式基础,再补机器学习知识。纯AI背景的人做不了嵌入式AI,因为模型部署的坑全在嵌入式侧——内存不够、算子不支持、精度掉得厉害。建议先在MCU或Linux方向站稳,再往AI方向转。

Q3:GitHub仓库星数多就一定好吗?

不一定。星数代表关注度,不代表适合学习。有些仓库代码质量高但文档差,有些教程仓库星数少但讲解到位。关键是看:最近一次commit时间(是否活跃)、Issue回复速度、README是否清晰。学习仓库优先选有配套文档和实验代码的。

Q4:没有开发板能学嵌入式吗?

能,但有限。QEMU可以模拟ARM环境跑Linux内核和裸机程序,linux-kernel-module-cheat这个仓库就提供了完整的QEMU方案。但到了调试时序、分析信号波形的阶段,还是得有实物。STM32F103最小系统板二三十块钱,ESP32开发板也差不多,入门成本不高。

十一、总结

嵌入式六大岗位各有门槛和天花板,选方向比埋头学更重要。MCU固件是基本功,RTOS是进阶阶梯,Linux驱动和系统是深水区,嵌入式AI和物联网是近两年需求涨得最快的方向。每个方向都有高星仓库可以加速学习,选对仓库、按顺序啃、动手做项目。别贪多,一个方向扎进去3到6个月,入门能力就有了。刚入行的话,小公司有它的好处——岗位不分那么细,基本就三块:MCU、Linux底层、Linux上层。再小一点的团队干脆全栈,一个人从头干到尾,逼着你啥都得会,成长反而快。干个两三年,技术面铺开了,再往大厂跳,带着全栈视野去做专精方向,面试的时候你会发现,跟只在单一模块待过的人完全不在一个段位。大厂分工细、流程规范、技术栈深,适合把某个方向扎透;但一上来就进大厂,容易只见树木不见森林,调了三年I2C驱动都不知道产品长什么样。先小后大,先广后深,这条路最划算。

版权声明

作者linuxROS
协议本作品采用 CC BY-NC-SA 4.0 许可协议:署名-非商业性使用-相同方式共享
关注欢迎关注微信公众号 linuxROS,获取更多机器人 / 嵌入式 / Linux 干货
返回首页