slug
嵌入式开发流程
type
Post
status
Published
date
Jun 10, 2026
tags
推荐
文字
summary
category
技术分享与前沿技术域认知
icon
password
核心区别先说清楚:普通软件是在同一台机器上写、跑、调;嵌入式是你的代码最终跑在另一块芯片(MCU/SoC,资源受限、没操作系统或只有 RTOS)上,所以多了"跨机器"的一整套环节。
类比:像给远方厨房写菜谱。你在自己电脑(host)上写和"翻译"菜谱,但真正下锅在另一台设备(target)上;你得通过专门管道(烧录器/调试器)把菜谱送过去,再通过一个"监控探头"远程看它做得对不对。
典型流程:
- 选型 — 根据功耗/外设/算力需求选芯片(如 STM32、ESP32),确定要用裸机还是 RTOS(FreeRTOS 等)。
- 搭工具链 — 装 cross-compiler(如
arm-none-eabi-gcc)。关键点:编译在你的 x86/ARM Mac 上跑,但产出的是目标芯片架构的二进制,这就是 cross-compilation。
- 写代码 — 三层:寄存器/外设配置 → driver(GPIO、UART、I2C 等)→ 业务逻辑。大量直接操作硬件寄存器或调 HAL 库。
- 编译链接 — 产出
.elf/.bin/.hexfirmware。这里有个普通开发没有的概念:linker script,它决定代码/数据怎么排进芯片的 Flash 和 RAM。
- 烧录(Flash) — 用 debugger(J-Link、ST-Link)或 bootloader 把 firmware 写进芯片的非易失存储。
- 在线调试 — 通过 JTAG/SWD 接口 + GDB 做硬件级调试:打断点、单步、看寄存器、看内存。最朴素的办法是 UART 打 log(嵌入式版的
printf调试)。
- 测试迭代 — 编译→烧录→调试这个循环比写普通软件慢很多,所以前期设计和静态检查更重要。
- Author:盛溪
- URL:https://tangly1024.com/article/嵌入式开发流程
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts


.jpg?table=block&id=26f7c1d5-a1e9-80d7-a52b-e71bb7079501&t=26f7c1d5-a1e9-80d7-a52b-e71bb7079501)




