嵌入式软件核心分 MCU 和 Linux 两大方向,应用场景互不重叠,时间有限时聚焦一个即可深耕。
分享一份无资源推荐、只讲 “怎么学” 的实战路线,帮 0 基础同学少走弯路。
MCU vs Linux
MCU 方向(嵌入式软硬件结合)
需兼顾软硬件,中小公司可能要兼顾代码、原理图设计、PCB 绘制;即使分工明确,也必须能看懂电路原理图,这是转行者易忽视的关键。
Linux 方向(偏软件)
岗位门槛相对高一点,多要求驱动、内核、应用全栈能力,单一岗位稀缺,门槛更高,但技术深度和薪资上限更突出。
MCU 方向学习路线
1. 夯实硬件基础(核心目标:看懂原理图)
先学基本电路知识,掌握电容、电感及滤波电路原理,理解傅立叶变换的应用;
再攻模电核心,吃透二极管、三极管、MOS 管、放大电路、运算放大器和反馈电路;
最后学数电,熟练进制转换、反码补码、逻辑电路、触发器、AD 转换及存储器知识,搭建硬件认知框架。
2. 掌握 EDA 工具与 C 语言
学习一款企业级 EDA 工具,目标是能独立绘制简单原理图和 PCB,理解布线规则与元件封装逻辑。
C 语言分阶段学
先掌握基础语法(变量、循环、分支、函数),再深入指针(多维指针、指针数组)、结构体、共用体、枚举等进阶内容,形成持续打磨的意识。
3. STM32 实战与内核学习
直接学 STM32(跳过 51),先掌握标准库开发,吃透 GPIO、串口、定时器、中断、ADC、I2C、SPI、CAN 等常用外设,每学一个知识点就动手做实验,拒绝 “只看不学”。
外设掌握后,深入 STM32 内核,理解寄存器组、PendSV、SVC、systick 定时器等核心机制,为 RTOS 学习铺路。
4. 进阶提升:RTOS、数据结构与源码
先学一款 RTOS,掌握任务创建、调度、队列、信号量等核心功能,动手做 STM32+RTOS 综合项目(如多传感器采集 + 显示);
再补数据结构,重点学数组、堆、栈、链表、二叉搜索树、哈希表,搭配算法刷题巩固;
最后深入 RTOS 源码,理清任务调度、内存管理的底层逻辑,结合数据结构知识理解链表、队列的实际应用。
5. 工程化收尾
入职前可补充常用中间件(如网络协议、图形库任选其一),掌握代码版本管理工具的核心操作,培养模块化、可复用的编程思维。
Linux 方向学习路线
1. 基础铺垫:系统与工具链
先熟练使用 Linux 系统,掌握 Shell 命令、文件系统、权限管理;
再学习 gcc、make 工具链及 Makefile 脚本,能独立完成代码编译、链接与调试。
2. 编程能力与应用开发
补充 C++ 核心知识,掌握类、继承、多态、虚函数、智能指针等面向对象特性;
再学 Linux 应用编程,吃透进程、线程、文件 IO、网络编程等核心内容,能开发简单命令行工具与网络服务;
后续可拓展 QT 开发,掌握界面布局、信号与槽机制,具备 GUI 应用开发能力。
3. 裸机与驱动开发突破
基于 ARM Cortex-A 架构开发板学裸机编程,掌握常用外设驱动与处理器架构;
最后攻 Linux 驱动开发,学习内核裁剪、根文件系统构建,掌握字符设备、块设备、网络设备驱动开发,结合 GDB 调试工具,完成从硬件到应用的全链路开发。
无论是 MCU 的软硬件结合,还是 Linux 的全栈深耕,都要以 “动手做项目” 为核心驱动力。不用贪多求全,选定一个方向按步骤推进,从简单实验到综合项目逐步升级,3-6 个月可具备入门能力,持续深耕后竞争力会稳步提升。
|
|