slug
嵌入式开发流程
type
Post
status
Published
date
Jun 10, 2026
tags
推荐
文字
summary
category
技术分享与前沿技术域认知
icon
password
核心区别先说清楚:普通软件是在同一台机器上写、跑、调;嵌入式是你的代码最终跑在另一块芯片(MCU/SoC,资源受限、没操作系统或只有 RTOS)上,所以多了"跨机器"的一整套环节。
类比:像给远方厨房写菜谱。你在自己电脑(host)上写和"翻译"菜谱,但真正下锅在另一台设备(target)上;你得通过专门管道(烧录器/调试器)把菜谱送过去,再通过一个"监控探头"远程看它做得对不对。
典型流程:
  1. 选型 — 根据功耗/外设/算力需求选芯片(如 STM32、ESP32),确定要用裸机还是 RTOS(FreeRTOS 等)。
  1. 搭工具链 — 装 cross-compiler(如 arm-none-eabi-gcc)。关键点:编译在你的 x86/ARM Mac 上跑,但产出的是目标芯片架构的二进制,这就是 cross-compilation。
  1. 写代码 — 三层:寄存器/外设配置 → driver(GPIO、UART、I2C 等)→ 业务逻辑。大量直接操作硬件寄存器或调 HAL 库。
  1. 编译链接 — 产出 .elf / .bin / .hex firmware。这里有个普通开发没有的概念:linker script,它决定代码/数据怎么排进芯片的 Flash 和 RAM。
  1. 烧录(Flash) — 用 debugger(J-Link、ST-Link)或 bootloader 把 firmware 写进芯片的非易失存储。
  1. 在线调试 — 通过 JTAG/SWD 接口 + GDB 做硬件级调试:打断点、单步、看寄存器、看内存。最朴素的办法是 UART 打 log(嵌入式版的 printf 调试)。
  1. 测试迭代 — 编译→烧录→调试这个循环比写普通软件慢很多,所以前期设计和静态检查更重要。
 
 
 
 
 
tool-call具体执行哈希表原理:从 HashMap 到 BM25 倒排索引
Loading...
盛溪
盛溪
盛溪的学习&生活博客
Announcement
🌟 欢迎来到盛溪的博客!🌟
大家好,我是盛溪。在这里,我将分享我的生活感悟、学习心得以及其他一些有趣的发现。希望我的文章能为你的生活带来一点启发和乐趣。
邮箱: felixwindsor3344@gmail.com
微信号: felix_windsor
📅 更新通知:
  • 我会定期更新博客,分享新的内容。
💬 互动环节:
  • 如果你有任何问题或想法,欢迎在评论区留言。我非常期待与你的互动!
📚 推荐阅读:
  • 不定期推荐一些我觉得有价值的书籍或资源,希望能对你有所帮助。
感谢你的访问和支持,希望你能常来逛逛!
盛溪敬上