What is an embedded system? 按 ISO/IEC/IEEE 24765 标准的说法,嵌入式系统是“作为更大系统的一部分、并承担该系统部分功能需求的计算机系统”——飞机上的航电、地铁里的控制器都是例子。它的软硬件都为特定功能做了裁剪与优化,至少包含一颗微控制器、微处理器或数字信号处理器,并在可靠性、成本、体积与功耗之间锱铢必较。
Elecia White 在《Making Embedded Systems》里给出更简洁的版本:嵌入式系统是“为其应用场景专门打造的计算机化系统”。它通常对用户隐形:微波炉的控制器、汽车的发动机管理单元、防抱死刹车——你每天都在用几十台计算机,却从未见过它们的界面。
本手册基于 m3y54m 的开源路线图整理翻译而成。原图把这门手艺划成三大领域——硬件、软件与软技能,并给每个知识点标注了优先级;本页保留原图结构,把两框交叠的地带单列成“软硬件交界”,并加上了可勾选的进度仪表与每组的自测问题。
MANUAL使用说明 HOW TO USE
每个知识点都带三样东西:一个复选框、一枚优先级标签、一份可展开的资源清单。优先级严格照搬原图的三档配色,翻译如下:
- 必修原图黄色 REQUIRED——多数嵌入式岗位的硬门槛,“当前位置”仪表只统计这一档。
- 建议原图橙色 RECOMMENDED——强烈建议掌握,视岗位方向取舍先后。
- 可选原图灰色 POSSIBILITIES——专业方向选修,按行业需要再点开。
- 未标注原图未单列、但资源仓库收录的主题,本页如实保留并注明。
资源条目前的机器标记表示类型与质量:BOOK 书籍、VIDEO 视频或课程、ART 文章、LINK 站点或工具、AUDIO 音频;EASY 表示入门友好(原仓库的“婴儿”标记),GEM 表示公认的经典权威(原仓库的“宝石”标记)。没有先验知识时先挑 EASY,想吃透一个主题时再啃 GEM。
勾选状态保存在浏览器 localStorage 里——只存在你这台机器上,换浏览器不同步,清缓存会丢失;顶部仪表条的 RESET 可一键清空。POS 读数按原图箭头顺序推算你的“当前位置”:找到第一个必修项尚未全部勾完的知识组;NEXT 列出该组还差的必修项。软技能贯穿全程,不参与推算。
仪表条第二行是筛选器:REQ ONLY 把整本手册收拢成必修主干,适合起步阶段减少干扰;TYPE 与 QUAL 按类型或质量过滤所有资源清单——比如只看 EASY,就得到一条纯入门书单。左侧浮动目录随滚动高亮当前章节,右侧数字是每组的勾选进度。
没有必要读完这里的每一本书、每一篇文章、每一个视频——真要那么做可能得花上好几年,只会让你疲惫失望。对必修主题建立基本理解就足够;很多资源只作参考,用到再查。当然,投入学习与项目的时间越多,功力自然越深。
PATH推荐学习顺序 THE RECOMMENDED PATH
原图的虚线箭头给出一条双起点的路径:从 START 出发,电子学与编程基础两条腿同时迈——硬件这条腿走向测试仪器,软件这条腿走向 C 语言;两条腿在微控制器与 RTOS 处会合,然后依次踏过接口协议、调试、构建与版本控制、测试。此后的安全、物联网、边缘 AI、GUI、AUTOSAR、FPGA 等灰色方向,按你的行业目标自选。
岗位侧重决定你在每一域的用力程度:Embedded Software / Firmware / Embedded Linux 工程师以软件为重,Embedded Hardware / Hardware Design 工程师深耕电子学,而 Embedded Systems Engineer 通常要求软硬兼通。同一职位在不同公司的要求也可能大不相同——把路线图当地图用,而不是当课表背。
右侧竖线是第五个维度:六项软技能与 C 语言同为黄色必修,但它们不属于任何一站,而是所有站点的背景音。
MAP原版大图 THE ORIGINAL MAP
这是 Meysam Parvizi 绘制的原版路线图(V1.2.3 (2023-12-23))。黄色为必修、橙色为建议、灰白为可选,虚线箭头即上一节“推荐学习顺序”的出处。点击图片全屏查看:滚轮缩放、拖拽平移、双击复位、ESC 退出,可逐个节点与本手册对照勾选。
LIVE进度总览 PROGRESS OVERVIEWSYNCED WITH YOUR CHECKBOXES
下图按本手册四部结构重绘:每个小块是一个知识组,蓝色填充随勾选进度增长,点击任意块直接跳转到对应章节。它和顶部仪表条读的是同一份本地存档。
INDEX目录 TABLE OF CONTENTS131 CHECKPOINTS · 793 RES
- PART 0 · 起步 GETTING STARTED
- 0.1 先跑起来 START SMALL
- 0.2 会搜索,会提问 SEARCH & ASK
- 0.3 Arduino 之门 THE ARDUINO GATE
- 0.4 课程与频道 COURSES & CHANNELS
- 0.5 网站、社区与职业 SITES & CAREER
- 0.6 开发环境 TOOLING
- PART 1 · 硬件 HARDWARE
- 1.1 电子学 ELECTRONICS
- 1.2 测试仪器 USING TEST EQUIPMENT
- 1.3 原型制作 PROTOTYPING SKILLS
- 1.4 FPGA 开发 FPGA DEVELOPMENT
- PART 2 · 软硬件交界 THE HW/SW BOUNDARY
- 2.1 微控制器 MICROCONTROLLERS
- 2.2 接口与协议 INTERFACES & PROTOCOLS
- 2.3 存储与文件系统 MEMORY & FILE SYSTEMS
- 2.4 硬件仿真 SIMULATION / EMULATION
- 2.5 传感器与执行器 SENSORS & ACTUATORS
- 2.6 数字信号处理 DIGITAL SIGNAL PROCESSING
- 2.7 控制理论 CONTROL THEORY
- PART 3 · 软件 SOFTWARE
- 3.1 编程基础 PROGRAMMING FUNDAMENTALS
- 3.2 编程语言 PROGRAMMING LANGUAGES
- 3.3 操作系统 OPERATING SYSTEMS
- 3.4 调试 DEBUGGING
- 3.5 构建系统 BUILD SYSTEM
- 3.6 版本控制 VERSION CONTROL
- 3.7 开发流程模型 SDLC MODELS
- 3.8 测试 TESTING
- 3.9 嵌入式安全 EMBEDDED SECURITY
- 3.10 嵌入式 GUI EMBEDDED GUI
- 3.11 物联网 IOT
- 3.12 边缘 AI EDGE AI
- 3.13 AUTOSAR AUTOSAR
- PART 4 · 软技能 SOFT SKILLS
- 4.1 六项核心软技能 THE SIX SKILLS
起步 GETTING STARTED
面对一整张密密麻麻的路线图,最常见的错误是打算从第一页啃到最后一页。原作者的建议恰恰相反:如果你感到无从下手,先做几个简单的入门项目热身——学嵌入式需要时间与耐心,一时看不懂很正常,动手做下去,理论自然会在项目里找上门来。
0.1先跑起来 START SMALL
动手做项目是最有效的学习方式:一个看似简单的小项目,往往比几个小时漫无目的的阅读教给你更多。不要一上来就挑战复杂系统,从点亮一颗 LED、读一个传感器这样的小目标开始;在真实项目里被问题卡住时,再回头查书、查课程,理解会深刻得多。
本组通用资源 · 11
- Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi
- Last Minute Engineers
- 51 STM32 Projects & Tutorials for Beginners and Up - Hackster.io
- STM32 (STM32F103C8) Projects & Tutorials
- ElectronicWings Projects
- STM32 Firmware - Phil’s Lab (YouTube Playlist)
- Raspberry Pi Based Embedded Project Ideas
- Embedded Linux On ARM | Projects
- Embedded System Project Series - Artful Bytes (YouTube Playlist)
- ESP32 ESP-IDF Tutorials & IoT Protocols
- flip-card
-
建议
NOTE: 本手册添加的检查点,原图未单列
0.2会搜索,会提问 SEARCH & ASK
卡住是这个行业的常态。先用搜索引擎找答案;搜不到再问 AI 助手——注意 AI 可能一本正经地答错,重要结论务必用可靠来源核实;仍然解决不了,就去 Electrical Engineering Stack Exchange 或 r/embedded 向真人提问。
0.3Arduino 之门 THE ARDUINO GATE
如果完全没有嵌入式编程背景,Arduino 的板子和库是最好的起点。但要清楚它的边界:多数 Arduino 库为教学而生,并未按工业标准优化;Arduino Core 替你包办了大量底层硬件操作——而那些恰恰是职业嵌入式工程师必须亲手掌握的。想走向专业,最终要能熟练使用芯片厂商认可的 SDK:CMSIS、STM32Cube、ESP-IDF 等。
0.4课程与频道 COURSES & CHANNELS
YouTube 就是一所大学:嵌入式领域有海量免费的优质内容;Coursera 与 edX 上有出色的免费课程,Udemy 有一些高质量的付费选择。挑一两个跟完,比收藏二十个吃灰有用。
本组通用资源 · 13
- DigiKey (YouTube Channel)
- Coursera - Introduction to Embedded Systems Software and Development Environments
- Coursera - Embedded Software and Hardware Architecture
- Coursera - ARM Cortex STM32 Deep Dive: Mastering Embedded Systems
- Fastbit Embedded Brain Academy
- Modern Embedded Systems Programming Course (YouTube Playlist)
- element14 presents (YouTube Channel)
- Ben Eater (YouTube Channel)
- Phil’s Lab (YouTube Channel)
- Embedded Systems - Jacob Sorber (YouTube Playlist)
- edX - Embedded Systems - Shape The World: Microcontroller Input/Output
- edX - Embedded Systems - Shape The World: Multi-Threaded Interfacing
- Low Byte Productions
0.5网站、社区与职业 SITES & CAREER
收藏几个常读的教育站点,胜过无数次临时搜索;行业动态与求职信息也值得保持关注,让学习始终对准岗位需求。
本组通用资源 · 20
- DeepBlueMbedded
- Digital Electronics Deeds
- Interrupt Blog by Memfault
- EmbeddedRelated.com
- ElectronicWings - Hardware Developers Community
- EduTecnica (Italian)
- Microchip University
- Nordic Developer Academy
- Electronics Tutorials
- SparkFun Learn: Learn at SparkFun Electronics
- Adafruit Learning System
- STM32 World
- ControllersTech
- Embedded Systems News - CNX Software
- News - PioLabs
- Embedded Artistry Beginners Roadmap
- Embedded Systems Skill Tree
- PCB Design Skill Tree
- FPGA / ASIC Engineering Roadmap
- EmbeddedJobs
0.6开发环境 TOOLING
厂商 IDE(Keil、IAR、STM32CubeIDE 等)是行业标配;VS Code 加插件是现代化的替代方案;PlatformIO 让个人小项目免去繁琐的工具链配置,适合快速起步,但在工业大型项目中尚未普及。
- 建议0 / 1
硬件 HARDWARE
“Hardware is hard!”——但这正是嵌入式与纯软件开发的分水岭。原图的 START 箭头从这里进入:数学、电路、电子学、数字设计、计算机体系结构,这条链构成你读懂数据手册与原理图的底层能力。
1.1电子学 ELECTRONICS
五个主题环环相扣:微积分是电路分析的语言,电路原理给你欧姆定律与基尔霍夫定律,电子学基础带你认识二极管、三极管与运放,数字设计教你逻辑门与时序电路,计算机体系结构则解释处理器如何取指、译码、执行你的代码。原图将这五项全部标为必修;对 ARM 与 RISC-V 两大指令集的理解,在业内被视为嵌入式开发者的基本功。
-
必修
-
必修
资源 · 5
- Lessons in Electric Circuits (All About Circuits)
- Electronics Tutorials
- Fundamentals of Electric Circuits - Charles K. Alexander, Matthew Sadiku
- Principles of Electric Circuits: Conventional Current Version - Thomas L Floyd, David M. Buchla
- Basic Circuit Theory I (By Prof. Razavi) (YouTube Playlist)
-
必修
资源 · 9
- Build Electronic Circuits - Øyvind Nydal Dahl
- Electronic Basics - GreatScott! (YouTube Playlist)
- Make: Electronics: Learning by Discovery - Charles Platt
- Electronic Devices: Conventional Current Version - Thomas Floyd, David Buchla, Steven Wetterling
- Electronics Fundamentals: Circuits, Devices & Applications - Thomas L Floyd, David M. Buchla, Gary D. Snyder
- Practical Electronics for Inventors - Paul Scherz, Simon Monk
- The Art of Electronics - Paul Horowitz, Winfield Hill
- Here’s a Quick Way to Know about Major Electronic Components
- Encyclopedia of Electronic Components - Charles Platt
-
必修
-
必修
资源 · 10
- Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy
- Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris
- Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris
- The Elements of Computing Systems - Noam Nisan, Shimon Schocken
- Computer Organization and Embedded Systems - Carl Hamacher, Zvonko Vranesic, Safwat Zaky, Naraig Manjikian
- Embedded Systems Architecture - Tammy Noergaard
- Embedded Systems Architecture - Daniele Lacamera
- The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors - Joseph Yiu
- The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors - Joseph Yiu
- Build an 8-bit computer from scratch
1.2测试仪器 USING TEST EQUIPMENT
嵌入式调试一半在代码里,另一半在电表与波形里。万用表、示波器、逻辑分析仪是你的眼睛:量电压、看信号、解协议——它们能证实或推翻你对系统行为的每一个假设。
-
必修
-
必修
-
建议
1.3原型制作 PROTOTYPING SKILLS
硬件设计主要是硬件工程师的职责,但嵌入式软件工程师掌握基础的原型技能,在调试硬件相关问题时能更快定位根因:面包板让你零焊接验证电路,焊接与返修让你修得动手里的板子,PCB 设计与 EMC 知识让你看得懂制板文件、听得懂硬件同事的讨论。
-
建议
-
建议
-
建议
资源 · 23
- Altium Academy YouTube Channel
- Robert Feranec YouTube Channel
- Altium Tutorials for Beginners - Robert Feranec (YouTube Playlist)
- Create PCBs for Rapid Prototyping - DigiKey (YouTube Playlist)
- PCB Design for Beginners - Altium Academy (YouTube Playlist)
- How to Make a Raspberry Pi Compute Module 4 Carrier Board - DigiKey (YouTube Playlist)
- How To Learn PCB Design (My Thoughts, Journey, and Resources) - Phil's Lab #87
- KiCad 6 STM32 PCB Design Full Tutorial - Phil's Lab #65
- Intro to KiCad - DigiKey (YouTube Playlist)
- PCB Design for EMI & SI - Phil's Lab #64
- PCB Design for Advanced Users (YouTube Playlist)
- [ PCB Knowledge [PCB Production Tips By PCBWay] (YouTube Playlist)](https://www.youtube.com/playlist?list=PLzxdr3n97eVtHuh7gnDzMubuO836kvfu7)
- Udemy – High-Speed Board Design Course System On Module -EsteemPCB
- Udemy – Advanced Hardware and PCB Design Masterclass 2022
- 9 Simple Tricks to Improve EMC / EMI on Your Boards - Practical examples (with Min Zhang)
- Many EMC Tips to Help You Design Better PCB Boards (with Keith Armstrong)
- LearnEMC - EMC Resources
- A Better Way to Build PCBs - Flux AI
- Monosketch
- EasyEDA
- Fritzing
- Cirkit Designer
- withdiode
-
建议
资源 · 6
- How To Solder - Electronics with Becky Stern | Digi-Key Electronics
- HOW TO SOLDER! (Beginner's Guide)
- Soldering Crash Course: Basic Techniques, Tips and Advice!
- How to Solder Through-Hole Components - Another Teaching Moment | DigiKey Electronics
- How to Solder QFN MLF Package by Hand (Using a Hot Air Rework Station) | Digi-Key Electronics
- From Solderless Breadboard to Soldered Circuit - Electronics with Becky Stern | Digi-Key Electronics
1.4FPGA 开发 FPGA DEVELOPMENT可选
FPGA 用硬件描述语言“画”电路,追求并行度与时序确定性,其设计与验证方法和嵌入式软件开发差异极大,是嵌入式版图中自成体系的专门领域。按你的方向选修即可。
-
可选
资源 · 7
- FPGA / ASIC Engineering Roadmap
- What are FPGAs?
- FPGA vs. Microcontroller: How to choose the right one for your project
- Introduction to FPGA (YouTube Playlist)
- FPGA Fundamentals - Nandland
- Coursera – FPGA Design for Embedded Systems Specialization
- A Hands-On Guide to Designing Embedded Systems - Adam Taylor, Dan Binnun, Saket Srivastava
- 必修0 / 7
- 建议0 / 5
- 可选0 / 1
软硬件交界 THE HW/SW BOUNDARY
在原图上,蓝色 SOFTWARE 与橙色 HARDWARE 两个边框恰好交叠出一块中间地带——微控制器、接口协议、存储、仿真、传感器都住在这里。这正是“嵌入式”三个字的本体:你的代码在这里第一次摸到电。
2.1微控制器 MICROCONTROLLERS
微控制器在一颗芯片上集成了处理器、存储器与外设,是绝大多数嵌入式系统的心脏。选型要评估应用需求、算力、内存与 I/O 能力,同时权衡成本、易用性、供货与扩展空间;AVR、PIC、STM32、MSP430、nRF、ESP32 都是常见家族,教学资源以 STM32 最为丰富。学习路径很直白:把下面这排外设一个个点亮——GPIO 是手,中断是反射,定时器是节拍器,DMA 是搬运工。
选型、家族与通用教程 · 22
- What Is a Microcontroller? The Defining Characteristics and Architecture of a Common Component
- How to Choose the Right Microcontroller for Your Application
- How to Read a Microcontroller Datasheet: Introduction and First Steps
- Make: AVR Programming - Elliot Williams
- NewbieHack - Microcontroller Tutorial - A Beginners Guide (AVR)
- Getting Started with STM32 and Nucleo (YouTube Playlist)
- Mastering STM32 - Carmine Noviello
- Developing IoT Projects with ESP32 - Vedat Ozan Oner
- Intro to Raspberry Pi Pico and RP2040 (YouTube Playlist)
- Getting started with STM32: STM32 step-by-step
- Getting Started With AVR (YouTube Playlist)
- Fundamentals of Microcontrollers - Arduino bare-metal breakdown (YouTube Playlist)
- Bare Metal Embedded Programming: Theory and Practice Using STM32 (YouTube Playlist)
- Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC - Warren Gay
- Udemy – Microcontroller Embedded C Programming: Absolute Beginners
- Udemy – Embedded Systems STM32 Low-Layer APIs(LL) Driver Development
- Udemy – Embedded Systems STM32 HAL APIs Driver Development
- Embedded System Design with ARM Cortex-M Microcontrollers: Applications with C, C++ and MicroPython - Cem Ünsalan, Hüseyin Deniz Gürhan, Mehmet Erkin Yücel
- Embedded Systems Design using the MSP430FR2355 LaunchPad - Brock J. LaMeres
- Building Embedded Systems: Programmable Hardware - Changyi Gu
- Awesome Embedded: A curated list of awesome embedded programming
- Awesome Electronics: A curated list of electronics resources
-
必修
-
必修
-
必修
-
必修
-
必修
-
必修
资源 · 5
- Polling/Interrupt/DMA differences explained easily
- Level Up Your Arduino Code: External Interrupts
- Tutorial 10: Peripheral 2 - Nested Vector Interrupt controller (NVIC) in STM32
- Tutorial 11: LAB - External Interrupt ( EXTI ) Interfacing in STM32 using STM32CUBEMX
- Tutorial 12: Interrupt Priorities in STM32
-
必修
-
必修
-
建议
-
建议
资源 · 7
- Basics to Developing Bootloader for Arduino
- From Zero to main(): How to Write a Bootloader from Scratch
- How to Create a Super Simple Bootloader
- Blinky To Bootloader: Bare Metal Programming Series (YouTube Playlist)
- Simple AVR Bootloader tutorial
- Udemy – STM32Fx Microcontroller Custom Bootloader Development
- Device Firmware Update Cookbook
-
未标注
NOTE: 原图未单列此主题,资源来自 README
2.2接口与协议 INTERFACES & PROTOCOLS
接口提供物理连接,协议约定数据交换的规则;选择取决于带宽、距离、功耗与安全。UART、I2C、SPI 三件套是绝对必修——几乎所有传感器与模块都靠它们说话;其余按行业方向选学:做物联网看无线,做工厂看工业总线,做汽车看 CAN。
- BASIC · 基础串行
-
必修
-
必修
-
必修
-
未标注
NOTE: 原图未单列
-
未标注
NOTE: 原图未单列
-
未标注
NOTE: 原图未单列
资源 · 1
- AUDIO · 数字音频
-
未标注
NOTE: 原图未单列
-
未标注
NOTE: 原图未单列
- DISPLAY · 显示与摄像头
-
未标注
NOTE: 原图未单列
-
未标注
NOTE: 原图未单列
-
未标注
NOTE: 原图未单列
-
未标注
NOTE: 原图未单列
- WIRELESS · 无线
-
建议
资源 · 7
- Microchip University - First Steps into Bluetooth Low Energy (BLE)
- Bluetooth Basics
- Bluetooth Low Energy: A Primer
- A Practical Guide to BLE Throughput
- SparkFun According to Pete #49 - How Bluetooth Works
- Bluetooth Low Energy Fundamentals - Nordic Semiconductor
- Bluetooth Overview - ESP-IDF Programming Guide
-
建议
-
可选
-
可选
-
可选
-
可选
-
可选
NOTE: 原图列出,仓库暂无对应资源
- INDUSTRIAL · 工业
-
建议
-
建议
NOTE: 原图中 MQTT 为建议、CoAP 为可选
-
未标注
NOTE: 原图未单列
-
可选
-
可选
NOTE: 原图列出,仓库暂无对应资源
- HIGH-SPEED · 高速
-
建议
资源 · 6
- Microchip University - Ethernet Fundamentals
- How the Ethernet Protocol Works – A Complete Guide
- What is an Ethernet PHY?
- The Data Link Layer, MAC Addressing, and the Ethernet Frame
- Microchip University - Serializer/Deserializer (SerDes) Basics for Your Next Microchip Ethernet PHY Design
- Microchip University - Ethernet Switch Fundamentals
-
建议
资源 · 10
- Microchip University - Introduction to USB 2.0
- Microchip University - USB 3 Fundamentals
- Training - USB 101 - Introduction to USB
- USB 101: An Introduction to Universal Serial Bus 2.0
- How does a USB keyboard work?
- How does USB device discovery work?
- MOOC - STM32 USB training (YouTube Playlist)
- Microchip University - USB2 Hub Fundamentals
- Beyond Logic - USB in a NutShell
- USB for Software Developers: An introduction to writing userspace USB drivers
-
可选
- NETWORK · 网络
-
可选
资源 · 12
- Networking Fundamentals - Practical Networking (YouTube Playlist)
- TCP vs UDP - Explaining Facts and Debunking Myths - TCP Masterclass
- TCP - 12 simple ideas to explain the Transmission Control Protocol
- UDP doesn't suck! It's the BEST L4 protocol for THESE types of applications...
- Networking tutorial - Ben Eater (YouTube Playlist)
- Hands-On Network Programming with C - Lewis Van Winkle
- Network Algorithmics - George Varghese, Jun Xu
- tcpdump & libpcap libraries
- lwIP - A Lightweight TCP/IP stack
- lwIP (ESP-IDF)
- Developing applications on STM32Cube with LwIP TCP/IP stack
- Understanding Traceroute
- AUTOMOTIVE · 汽车
-
建议
资源 · 10
- Microchip University - CAN and CAN FD Protocol and Physical Layer Basics
- CAN bus in 2024: Operation, Advantages and Recent Developments
- CAN Bus: Serial Communication - How It Works?
- CAN Bus: A Beginners Guide Part 1
- CAN Bus: A Beginners Guide Part 2
- Microchip University - Designing and Implementing a CAN FD Network
- Improving my electric longboard with a CAN Bus! What can the CAN Bus do? EB#44
- CAN Bus, OBD2 & J1939 Explained (YouTube Playlist)
- [ J1939 Explained - A Simple Intro [v2.0 | 2021]](https://www.youtube.com/watch?v=vlqxu9ojbHg)
- [ Unified Diagnostic Services (UDS) Explained - A Simple Intro [2022]](https://www.youtube.com/watch?v=CV_B8tJgI5E)
-
可选
NOTE: 原图列出,仓库暂无对应资源
-
可选
NOTE: 原图列出,仓库暂无对应资源
-
可选
NOTE: 原图列出,仓库暂无对应资源
- CELLULAR · 蜂窝
-
可选
-
可选
2.3存储与文件系统 MEMORY & FILE SYSTEMS建议
嵌入式系统混用易失性存储(SRAM、DRAM、PSRAM)与非易失性存储(Flash、EEPROM、FRAM),按性能、成本、功耗与寿命权衡取舍。嵌入式文件系统通常是轻量级的,为掉电安全与磨损均衡而设计,与桌面文件系统思路很不一样。原图将本组整体标为建议,组内条目继承该优先级。
-
建议
-
建议
-
建议
-
建议
资源 · 9
- Flash filesystems
- Block filesystems
- Understanding the UBI File System in Embedded Devices
- UBI File System
- JFFS : The Journalling Flash File System
- Preventing Filesystem Corruption In Embedded Linux
- LittleFS - A high-integrity embedded file system
- SPIFS - Wear-leveled SPI flash file system for embedded devices
- EEPROM File System (EEFS)
2.4硬件仿真 SIMULATION / EMULATION建议
在真板到手之前,仿真让你先跑起来:Wokwi 这类在线仿真器适合入门试验,QEMU 与 Renode 能在 CI 里模拟整个 MCU 平台——缩短开发周期、降低硬件成本,也让固件测试可以完全自动化。原图将本组整体标为建议。
-
建议
-
建议
-
建议
2.5传感器与执行器 SENSORS & ACTUATORS可选
传感器是系统的眼睛,把温度、光线、加速度变成电信号;执行器是系统的手,把电信号变成转动与开合。这一层的关键功课是读数据手册、做标定、处理噪声。
-
可选
资源 · 8
- Calibrating Sensors
- DHT11 vs DHT22 vs LM35 vs DS18B20 vs BME280 vs BMP180
- Getting Started With STM32 and Nucleo Part 2: How to Use I2C to Read Temperature Sensor TMP102
- GPS Module and STM32 || NEO 6M || Get coordinates, Date, Time, Speed, etc.
- Interface MPU6050/GY-521 with STM32 || LCD 20x4 || CubeMx || HAL || SW4STM
- Arduino with PIR Motion Sensor
- Complete Guide for Ultrasonic Sensor HC-SR04 with Arduino
- Electronic Basics #15: Temperature Measurement (Part 1) || NTC, PT100, Wheatstone Bridge
-
可选
资源 · 7
- Adafruit Motor Selection Guide
- DC Motor Speed Controller PWM With Potentiometer Using STM32
- All About Stepper Motors
- Using Servos With CircuitPython and Arduino
- Electronic Basics #25: Servos and how to use them
- Electronic Basics #24: Stepper Motors and how to use them
- Electronic Basics #18: DC & Brushless DC Motor + ESC
2.6数字信号处理 DIGITAL SIGNAL PROCESSING可选
采样进来的信号往往带着噪声与混叠。DSP 给你滤波器、FFT 与定点运算这些工具,让一颗 MCU 也能胜任音频、振动与生物信号的实时分析。
-
可选
资源 · 10
- The Scientist and Engineer's Guide to Digital Signal Processing - Steven W. Smith
- FIR Filter Design and Software Implementation - Phil's Lab #17
- IIR Filters - Theory and Implementation (STM32) - Phil's Lab #32
- Digital Signal Processing (ECSE-4530) Lectures, Fall 2014 (YouTube Playlist)
- Udemy – Digital Signal Processing (DSP) From Ground Up in C
- Real-Time Digital Signal Processing: Fundamentals, Implementations and Applications - Sen M. Kuo, Bob H. Lee, Wenshun Tian
- Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs - Thad B. Welch, Cameron H.G. Wright, Michael G. Morrow
- Schaum's Outline of Signals and Systems - Hwei P. Hsu
- Digital Signal Processing - John G. Proakis, Dimitris K. Manolakis
- Introduction to Computer Music
-
可选
2.7控制理论 CONTROL THEORY可选
让电机停在想要的位置、让温度稳在设定值,靠的是反馈控制。PID 是嵌入式领域使用最广的控制器,MATLAB / Simulink 则是建模与调参的标准工具。
-
可选
-
可选
-
可选
- 必修0 / 11
- 建议0 / 16
- 可选0 / 21
- 未标注0 / 11
软件 SOFTWARE
软件域覆盖从语言到工程化的完整链条。原图的态度很直白:C 与算法数据结构是黄色必修,GCC、Make、Git、GDB 这些工具链同样是黄色——会写代码只是一半,能构建、能调试、能测试才是职业选手。
3.1编程基础 PROGRAMMING FUNDAMENTALS
嵌入式在资源受限的环境里跑代码,对效率、内存与结构的要求比桌面开发更苛刻:算法与数据结构决定时间与空间开销,设计模式与状态机塑造固件架构,内存管理直接关系系统能否长期稳定运行。离散数学为这一切提供理论底座,按需补课即可。
-
未标注
NOTE: 原图未单列;进阶内容见附录 A
资源 · 5
- Coursera - Introduction to Discrete Mathematics for Computer Science Specialization
- Open Access Discrete Mathematics Books by LibreTexts
- Essential Discrete Mathematics for computer science by Lewis HARRY., Zax R. ACM DL
- Guide to Discrete Mathematics - Gerard O'Regan, Springer
- Bridge to Abstract Mathematics, AMS
-
必修
资源 · 7
- Grokking Algorithms - Aditya Y. Bhargava
- Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
- Collection of various algorithms in mathematics, machine learning, computer science, physics, etc implemented in C for educational purposes
- Udemy – Embedded Systems State Machines & Data Structures
- Data Structures in C
- Data Structures - Full Course Using C and C++
- Hello Algo
-
必修
资源 · 5
- Practical Design Patterns: Opaque Pointers and Objects in C
- Design Patterns for Embedded Systems in C - Bruce Powel Douglass
- Making Embedded Systems: Design Patterns for Great Software - Elecia White
- Making Embedded Systems: Design Patterns for Great Software - Elecia White (Audio Book)
- Design Patterns - Refactoring Guru
-
必修
资源 · 7
- Programming embedded systems the easy way – with state machines
- State Machines (YouTube Playlist)
- Event-Driven Programming (YouTube Playlist)
- Udemy - Embedded System Design using UML State Machines
- “Input-Driven” vs. Event-Driven State Machines
- State Machines for Event-Driven Systems
- Practical UML Statecharts in C/C++ by Miro Samek
-
必修
资源 · 7
- Understanding the C runtime memory model
- Pointers and dynamic memory - stack vs heap
- Dynamic Memory Allocation | C Programming Tutorial
- Dynamic memory allocation in C - malloc calloc realloc free
- What is Memory Leak in C/C++? How can we avoid?
- Understanding Memory Management in Rust
- Memory Management in Python
3.2编程语言 PROGRAMMING LANGUAGES
C 是嵌入式的通用语,直接映射硬件;C++ 与 Rust 在复杂固件里提供更强的抽象与安全性;Python 常用于测试脚手架与上位机工具;汇编在启动代码与极致优化处仍有一席之地。原图的判断:C 必修,C++ 与 Python 建议,汇编与 Rust 可选。
-
必修
资源 · 22
- Microchip University - Syntax And Structure of C - Simply C
- Microchip University - Advanced C Programming
- Microchip University - Advanced Embedded C Tips, Tricks, and Cautions
- Microchip University - C Programming: Linked List Data Structures
- Microchip University - C Programming Callbacks
- C Programming for Beginners | Full Course
- C Programming Tutorials (YouTube Playlist)
- The C Programming Language - Brian W. Kernighan, Dennis M. Ritchie
- C by Example
- The Little Book of C
- C How to Program - Paul Deitel, Harvey Deitel
- Effective C - An Introduction to Professional C Programming - Robert C. Seacord
- Modern C - Jens Gustedt
- Embedded C Coding Standard
- newlib C Library Documentation
- The GNU C Library (glibc)
- From Zero to main(): Bare metal C
- From Zero to main(): Bootstrapping libc with Newlib
- Introduction to Nintendo DS Programming
- Learn C Programming and OOP with Dr. Chuck
- Extreme C - Kamran Amini
- Coursera - C Programming with Linux Specialization
-
建议
资源 · 19
- Modern C++ in Embedded Development: (Don't Fear) The ++
- C++ On Embedded Systems
- Bare Metal C++ - Alexey Rybachuk
- C++ in Constrained Environments - Bjarne Stroustrup - CppCon 2022
- C++ Tutorial for Beginners - Full Course
- C++ by The Cherno (YouTube Playlist)
- Udemy - Beginning C++ Programming - From Beginner to Beyond
- CppCon Conferences - YouTube
- A Tour of C++ (3rd Edition) - Bjarne Stroustrup
- The C++ programming Language (C++11) - Bjarne Stroustrup
- Programming -- Principles and Practice Using C++ (3rd Edition) - Bjarne Stroustrup
- Real-Time C++: Efficient Object-Oriented and Template Microcontroller Programming - Christopher Kormanyos
- Effective Modern C++ - Scott Meyers
- The Essence of C++ by Bjarne Stroustrup - YouTube
- Delivering Safe C++ by Bjarne Stroustrup - CppCon 2023
- The Design of C++ by Bjarne Stroustrup Computer History - YouTube
- The Design and Evolution of C++ - Bjarne Stroustrup
- Papers on C++ by Bjarne Stroustrup - Stroustrup's Website
- Papers on C++ by Bjarne Stroustrup - ACM DL
-
建议
资源 · 9
- Python for embedded systems testing
- The Python Handbook – Learn Python for Beginners
- Real Python: Python Tutorials
- Python Crash Course - Eric Matthes
- MicroPython - Python for microcontrollers
- MicroPython 101 | Arduino Documentation
- CircuitPython
- The Pros and Cons of Designing Embedded Systems with MicroPython
- Programming the ESP32 with MicroPython
-
可选
资源 · 6
- Introduction to ARM Assembly Basics
- Udemy – ARM GNU Assembly Programming From Ground Up
- Assembly Language Programming with ARM – Full Tutorial for Beginners
- How to Use Inline Assembly Language in C Code
- Raspberry Pi Assembly Language Programming : ARM Processor Coding
- Battery info program for x86-64 Linux laptops in 298 bytes of machine code
-
可选
资源 · 12
- 5 roadblocks to Rust adoption in embedded systems
- The Embedded Rust Book
- The Future of Programming: Rust (YouTube Playlist)
- Community Rust support projects for STM32 microcontrollers
- Rust on ESP Community
- Embedded Rust su ESP32 (Italian) - YouTube Playlist
- Rust on STM32: Getting started
- From Zero to main(): Bare metal Rust
- Writing an OS in Rust - Philipp Oppermann's blog
- Kernel Driver with Rust in 2022
- Rustlings - Small exercises to get you used to reading and writing Rust code!
- Learn Rust the Effective Way
-
未标注
NOTE: 原图未单列此语言
3.3操作系统 OPERATING SYSTEMS
裸机还是上 OS?各有代价:操作系统带来资源管理、任务调度与通信能力,也带来开销。RTOS 以确定性调度换来实时保证,是航电、机器人、医疗设备的标配;嵌入式 Linux 则把完整的进程、驱动与网络栈带进资源更充裕的设备。RTOS 基础是本组唯一的黄色必修——先懂任务、调度与同步原语,再挑一个内核练手。
- GENERAL · 通识
-
建议
资源 · 10
- Putting the “You” in CPU
- Operating System in 1,000 Lines
- The little book about OS development
- Operating Systems: From 0 to 1
- An operating system
- Porting Mac OS X to the Nintendo Wii
- Operating Systems: Three Easy Pieces - Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau
- Modern Operating Systems - Andrew S. Tanenbaum, Herbert Bos
- Writing an OS in Rust - Philipp Oppermann's blog
- Operating System development tutorials in Rust on the Raspberry Pi
- RTOS · 实时操作系统
-
必修
资源 · 11
- Bare-metal and RTOS Based Embedded Systems
- RTOS vs. Bare Metal: Navigating Performance, Complexity, and Efficiency
- The Pros and Cons of RTOS vs Bare Metal: Which Will You Choose?
- FreeRTOS vs Linux for Embedded Systems
- tinyOS RTOS
- Real-Time Systems Concepts
- RTOS Fundamentals
- A Simple Scheduler via an Interrupt-driven Actor Model
- ARM Cortex-M RTOS Context Switching
- RTOS (YouTube Playlist)
- Beyond the RTOS (YouTube Playlist)
-
建议
资源 · 8
- FreeRTOS - Market leading RTOS
- Introduction to RTOS (YouTube Playlist)
- Mastering the FreeRTOS Real Time Kernel - a Hands On Tutorial Guide
- Microchip University - FreeRTOS Simplified: A Beginner's Guide to Develop and Debug FreeRTOS Applications
- Getting Started With STM32 and Nucleo Part 3: FreeRTOS - How To Run Multiple Threads w/ CMSIS-RTOS
- Hands-On RTOS with Microcontrollers: Building real-time embedded systems using FreeRTOS, STM32 MCUs, and SEGGER debug tools - Brian Amos
- Beginning STM32: Developing with FreeRTOS, libopencm3 and GCC - Warren Gay
- SafeRTOS - Safety Critical Real-Time OS
-
建议
-
可选
-
可选
-
可选
-
未标注
NOTE: 原图未单列这几个内核
资源 · 11
- NuttX - The Apache Software Foundation
- NuttX Documentation
- Getting Started to NuttX (YouTube Playlist)
- Mbed OS
- Mbed OS Documentation
- VxWorks | Industry Leading RTOS for Embedded Systems
- VxWorks Documentation
- VxWORKS-RTOS - Kumar M (YouTube Playlist)
- Azure RTOS - Making embedded IoT development and connectivity easy
- Microsoft Azure RTOS documentation
- Azure RTOS ThreadX
- LINUX · 嵌入式 Linux
通用资源 · 11
- What Is Embedded Linux?
- FreeRTOS vs Linux for Embedded Systems
- Introduction to Embedded Linux (YouTube Playlist)
- Mastering Embedded Linux Series - George Hilliard's blog
- Mastering Embedded Linux Programming - Chris Simmonds
- Coursera - Advanced Embedded Linux Development Specialization
- Linux From Scratch - step-by-step instructions for building your own custom Linux system
- Automotive Grade Linux (AGL)
- Real Time Linux and `PREEMPT_RT` Patch
- Android Open Source Project
- Android Automotive
-
建议
-
建议
-
可选
资源 · 2
-
可选
资源 · 12
- Buildroot Documentation
- Introduction to Embedded Linux Part 1 - Buildroot | Digi-Key Electronics
- Building Tiny Raspberry Pi Linux Images With Buildroot
- Yocto Project Quick Build
- Yocto Project Documentation
- Introduction to Embedded Linux Part 2 - Yocto Project | Digi-Key Electronics
- Build Linux Image for Raspberry Pi board using Yocto Project
- Yocto Project Tutorial Series (Basic to Advance) (YouTube Playlist)
- Udemy – Embedded Linux using Yocto
- Embedded Linux Systems with the Yocto Project - Rudolf J.Streif
- Embedded Linux Development using Yocto Project Cookbook - Alex Gonzalez
- Bootlin Embedded Linux, Kernel, drivers, Yocto, Buildroot and Graphics Training
-
可选
-
可选
-
未标注
NOTE: 原图未单列
-
可选
资源 · 1
3.4调试 DEBUGGING
打印大法只是起点。JTAG / SWD 是通往芯片内部的门,GDB 是审讯室,OpenOCD 则是两者之间的翻译官。系统地学调试,比多写十倍代码更能提升你定位问题的速度。
本组通用资源 · 1
-
必修
资源 · 6
- A Deep Dive into ARM Cortex-M Debug Interfaces
- Guide: Connecting your debugger
- STM32 + SWD + ST-Link + CubeIDE | Debugging on Custom Hardware Tutorial - Phil's Lab #4
- Diving into JTAG protocol. Part 1 — Overview
- Diving into JTAG protocol. Part 2 — Debugging
- Diving into JTAG protocol. Part 3 — Boundary Scan
-
必修
资源 · 7
- Advanced GDB Usage
- How do breakpoints even work?
- GNU GDB Debugger Command Cheat Sheet
- gdbgui - A browser-based frontend to gdb (gnu debugger)
- everyone needs to stop using print debugging (do THIS instead)
- GDB is REALLY easy! Find Bugs in Your Code with Only A Few Commands
- Introduction to ARM Semihosting
-
可选
3.5构建系统 BUILD SYSTEM
从源码到可烧录的固件之间,隔着编译器、链接器与构建脚本。GCC 交叉工具链与 Make / CMake 是黄色必修;Bash 让重复劳动自动化;Docker 把整套环境封装成可复现的镜像,团队协作与 CI 都靠它。
-
必修
-
必修
资源 · 6
- A Shallow Dive into GNU Make
- Building STM32 projects from scratch with cross platform tools like Make, CMake and arm-gcc compiler toolchain (YouTube Playlist)
- CMake Tutorial
- How to CMake Good (YouTube Playlist)
- The most thoroughly commented embedded CMakeLists file
- A lightweight build and workflow tool for C/C++
-
建议
-
可选
3.6版本控制 VERSION CONTROL
Git 是行业默认语言——分支、合并、回滚与代码评审都建立在它之上;SVN 仍活在一些老项目里,见到不慌即可。
-
必修
-
可选
资源 · 1
3.7开发流程模型 SDLC MODELS
敏捷 / Scrum 与 V 模型代表两种节奏:前者拥抱变化、快速迭代;后者强调验证与追溯,在汽车、医疗、航空这些安全攸关行业仍是主流。了解它们,你才能听懂项目经理在说什么。
-
建议
资源 · 6
-
建议
3.8测试 TESTING
嵌入式测试从单元测试到硬件在环(HIL)层层递进。TDD 与单元测试是黄色必修——给驱动写测试并不比写驱动更难;CI/CD 让每一次提交都被自动验证;标准与认证(MISRA、ISO 26262、DO-178C)则是安全攸关行业的入场券。
本组通用资源 · 3
-
必修
资源 · 19
- Test Driven Development for Embedded C - James Grenning
- Testing: Unit VS Integration VS Regression VS Acceptance
- Firmware Testing with Renode and GitHub Actions
- Balancing Test Coverage vs. Overhead
- Embedded C/C++ Unit Testing Basics
- Embedded C/C++ Unit Testing with Mocks
- Unit Testing for C (especially Embedded Software)
- How to Use Ceedling for Embedded Test-Driven Development
- Unit Testing Principles, Practices, and Patterns - Vladimir Khorikov
- Catch2 - A modern, C++-native, test framework for unit-tests
- pytest-embedded
- Introduction to testing ESP32 code with Pytest
- Pigweed
- GoogleTest - Google Testing and Mocking Framework
- GoogleTest User’s Guide
- GoogleTest And GoogleMock (GTest and GMock)
- Hardware CI Arena
- Exclave: Hardware Testing in Mass Production, Made Easier
- Regression Testing of Embedded Systems
-
建议
资源 · 8
- Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics
- Intro to CI/CD Part 2: Getting Started with GitHub Actions | Digi-Key Electronics
- How to Build a Continuous Integration and Delivery Process for Embedded Software
- A guide to continuous delivery in embedded development
- Continuous Delivery for Embedded Systems • Mike Long • GOTO 2015
- Continuous Integration & Continuous Delivery for Embedded Systems (Whitepaper)
- What is DevOps in an Embedded Device Company?
- CI/CD Tutorials (YouTube Playlist)
-
可选
-
可选
资源 · 10
- Intro to Embedded Development: Styles and Standards
- Safety Standards and Certifications for Embedded Systems Development
- Microchip University - An Introduction To The ISA/IEC 62443 Standard
- Exploring EMC Basics & Standards
- Microchip University - Introduction to Functional Safety
- Udemy – Functional Safety According to ISO 26262 - Crash Course
- A Guide to MISRA C Coding Standards - MISRA C and MISRA C++
- A Firmware Development Standard by Jack Ganssle
- Safety-critical Embedded systems: How to prepare for software development
- DO-178C - Software Considerations in Airborne Systems and Equipment Certification
3.9嵌入式安全 EMBEDDED SECURITY可选
资源受限让安全在嵌入式里格外难做:算力有限、更新困难、设备还暴露在物理攻击之下。从攻击者视角学习硬件攻防,再落到密码学原语与安全启动、安全升级的工程实现。
本组通用资源 · 1
-
可选
-
可选
资源 · 14
- Microchip University - Cryptography Primer
- Hashing, Hashing Algorithms, and Collisions - Cryptography - Practical TLS
- Data Integrity - How Hashing is used to ensure data isn't modified - HMAC - Cryptography
- Encryption - Symmetric Encryption vs Asymmetric Encryption - Cryptography - Practical TLS
- Public and Private Keys - Signatures & Key Exchanges - Cryptography - Practical TLS
- Understanding AES Encryption Mechanics: BMPS
- Understanding Cryptography: A Textbook for Students and Practitioners - Christof Paar, Jan Pelzl
- Handbook of Applied Cryptography - Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone
- Serious Cryptography: A Practical Introduction to Modern Encryption - Jean-Philippe Aumasson
- MOOC - Security Part2: Basics of cryptography (YouTube Playlist)
- MOOC - Security Part3 : STM32 security features (YouTube Playlist)
- Introduction to encryption for embedded Linux developers
- A hands-on approach to symmetric-key encryption
- Asymmetric-Key Encryption and Digital Signatures in Practice
-
可选
资源 · 11
- AVR231: AES Bootloader
- Blinky To Bootloader: Bare Metal Programming Series (YouTube Playlist)
- MOOC - Security Part4 : STM32 security in practice (YouTube Playlist)
- MOOC - Security Part5 : How to define your security needs (YouTube Playlist)
- MOOC - Security Part6: STM32 security ecosystem, from theory to practice (YouTube Playlist)
- TPM (Trusted Platform Module) - Computerphile
- Securing Embedded Linux Systems with TPM 2.0 - Philip Tricca, Intel
- TPM: Basic applications to embedded devices
- OTA for Embedded Linux Devices: A practical introduction
- Introduction to Embedded Linux Security - part 1
- Introduction to Embedded Linux Security - part 2
3.10嵌入式 GUI EMBEDDED GUI可选
资源受限设备上的图形界面,要在帧率、内存与美观之间找平衡。LVGL 与 TouchGFX 是 MCU 级的主流选择,Qt / QML 服务于更强的 Linux 设备。
-
可选
3.11物联网 IOT可选
IoT 设备的大脑正是嵌入式系统:低功耗采集、组网上云、远程管理。OTA——尤其是节省带宽的差分升级——是量产设备的生命线。
-
可选
-
可选
3.12边缘 AI EDGE AI可选
让模型在设备端直接推理:省带宽、保隐私、低延迟。TinyML 专注于在 MCU 这类算力极小的平台上部署模型,TensorFlow Lite 是最常用的推理运行时。
-
可选
-
可选
-
可选
资源 · 10
- Intro to TinyML Part 1: Training a Neural Network for Arduino in TensorFlow | Digi-Key Electronics
- Intro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino | Digi-Key Electronics
- Coursera - Introduction to Embedded Machine Learning
- TinyML: Getting Started with TensorFlow Lite for Microcontrollers | Digi-Key Electronics
- TinyML: Getting Started with STM32 X-CUBE-AI | Digi-Key Electronics
- edX - Fundamentals of TinyML
- edX - Applications of TinyML
- edX - Deploying TinyML
- edX - MLOps for Scaling TinyML
- TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers - Pete Warden, Daniel Situnayake
3.13AUTOSAR AUTOSAR可选
汽车行业的软件架构标准:为不同厂商的 ECU 提供统一的组件化平台,让它们能够无缝协同。进车厂做汽车电子,这是绕不开的一课;否则可以放心跳过。
-
可选
- 必修0 / 12
- 建议0 / 11
- 可选0 / 25
- 未标注0 / 4
软技能 SOFT SKILLS
与其他职业一样,软技能无法从书本一次性获得——它在协作与解决实际工作难题的过程中长出来,而且没有放之四海皆准的练法,需要认清自己的长短板、投入时间刻意练习。原图把六项软技能全部标为黄色必修,与 C 语言同级。这不是客套。
4.1六项核心软技能 THE SIX SKILLS
软技能贯穿职业生涯全程,不参与“当前位置”的推算——它们不是某个阶段的课程,而是每个阶段的背景音。
本组通用资源 · 2
-
必修
-
必修
-
必修
-
必修
-
必修
-
必修
- 必修0 / 6
EXIT行业出口 INDUSTRIES
原图把行业画成路线终点的分叉:同一套内核、总线与调试功夫,换一个行业只是换了协议与标准的口音。点击下面任意行业,页面会高亮与它强相关的选修主题——选定方向后,把它们逐个点亮即可。
Q/A常见问题 COMMON QUESTIONS
IN_01嵌入式开发和普通软件开发有什么不同?
OUT嵌入式系统是“为特定用途而造的计算机系统”,藏在更大的产品里工作:微波炉的控制器、汽车的发动机管理、飞机上的航电。它的软硬件都为专门功能做了裁剪与优化,在可靠性、成本、体积、功耗上锱铢必较——你写的代码要直接面对硬件、资源和实时性的约束。
IN_02我应该先学硬件还是先学软件?
OUT看目标岗位。Embedded Software / Firmware / Embedded Linux 工程师以软件为主,Embedded Hardware / Hardware Design 工程师以硬件与电子学为主,而 Embedded Systems Engineer 通常要求软硬兼通。本手册覆盖典型的全栈要求:想做软件岗就优先软件域,想做硬件岗就把更多时间投给电子学。
IN_03用 Arduino 入门算不算“不专业”?
OUT入门用它完全正当——没有编程基础时它是最好的起点。但多数 Arduino 库为教学而生,未按工业标准优化,Arduino Core 也替你包办了太多底层操作。想吃这碗饭,最终要能使用厂商认可的 SDK:CMSIS、STM32Cube、ESP-IDF 等。
IN_04资源太多,根本学不完怎么办?
OUT原作者的警告:不要试图读完这里所有的书、文章与视频——那可能要花好几年,只会让你疲惫失望。对必修主题建立起基本理解就够了,很多资源只作参考、用到再查。投入项目实践的时间越多,理解自然越深。
IN_05卡住了去哪里求助?
OUT顺序是:搜索引擎,然后 AI 助手——记住 AI 可能给出错误答案,重要结论要用可靠来源核实;最后去 Electrical Engineering Stack Exchange 或 r/embedded 向真人提问。提问前先把问题最小化复现,这本身常常就把问题解决了。
IN_06需要学离散数学吗?
OUT打基础阶段够用即可:逻辑、组合、图论帮你理解数字电路与算法。做编码理论、自动机、并发建模这类方向时再深入——附录 A 收录了系统的进阶书目。
APP.A进阶离散数学 ADVANCED DISCRETE MATHEMATICS
离散数学是计算机科学与计算机工程的公共理论底座:逻辑对应数字电路与开关代数,编码理论支撑音视频编解码与数据传输,自动机理论解释事件控制与并发建模。嵌入式工程师迟早会按自己的细分方向撞上其中某几块——原仓库附录给出了一份系统的进阶书目,供撞上时取用。
进阶书目 · 16
- Logic (Propositional, Quantificational and Normal Forms).
- Axiomatic Set Theory (Sets, Operations on sets, and Power Sets).
- Relation Sets and Function Theory (i.e., $$\lambda$$ Calculus).
- Theory of combinatorics.
- Matrix and Graph Theory.
- Theory of computation (i.e., Computational Automata Theory, Computational Complexity, and Computational Computability).
- Automata Theory (e.g., Finite-state Machines, Pushdown Automata, Turing Machines, and Cellular Automata).
- Process Modelling/Calculi (i.e., $$\pi$$ Calculus).
- Coding Theory.
- Division Theorem Modular Arithmetics (Parts of Number Theory).
- Discrete Mathematics and its applications by Rosen
- Discrete Mathematics with Applications by Susanna S. Epp
- Switching and Finite Automata Theory, Cambrdige Press
- Discrete Mathematical Structures by Bernard Kolman
- Invitation to Discrete Mathematics, Oxford University Press
- The Mathematics of Cellular Automata by Jane Hawkins, AMS