嵌入式到底学MCU还是Linux?六大岗位路线图+高星开源仓库一次讲透
导读:嵌入式到底有哪些岗位?每个岗位该学什么、去哪学?本文梳理MCU固件、RTOS、Linux驱动、Linux系统、嵌入式AI、物联网六大方向,每个方向配高星学习仓库,告诉你每个方向该看什么仓库、按什么顺序学。如果你更关注架构选型和硬件框图,推荐先看《嵌入式全栈架构全景图:七大方向30+高星开源仓库一次讲透》,两篇互为补充——那篇讲"怎么选",这篇讲"怎么学"。
一、嵌入式岗位全景:MCU和Linux是两条主线
嵌入式不是单一岗位,是整条产业链。写寄存器、调内核、烧固件、推模型——不同环节需要完全不同的技能栈。很多人卡在"嵌入式到底学什么"这个问题上,根本原因是没搞清楚岗位边界。
嵌入式软件岗位大致分两大阵营:MCU方向偏软硬件结合,Linux方向偏纯软件深耕。近几年嵌入式AI和物联网两个交叉方向冒出来,把传统边界搅得更模糊了。
六大岗位的关系和技能依赖:
二、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)、交叉编译工具链。
高星学习仓库:
| 仓库 | 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 |
九、嵌入式职业发展路径
十、常见问题
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驱动都不知道产品长什么样。先小后大,先广后深,这条路最划算。