在AI盛行的如今,嵌入式软件工作者应该如何发展,或者说如何利用AI,如何学习新的嵌入式知识,是按照传统一步一步学习还是,利用AI直接生成相关代码,还是说学习的时候一步一步,应用的时候用AI

这是一个很深刻的困惑,也恰恰是当前嵌入式领域最值得思考的问题。简单直接的结论是:学习时按传统“一步一个脚印”,工作时大胆用AI提效。 两者并不矛盾,而是形成“基础夯实 + 杠杆放大”的组合。

下面从发展、利用、学习三个维度拆解。

一、嵌入式软件工作者的核心发展:从“码农”转向“系统架构师”

AI能写代码,但无法替代你在以下方面的判断力:

  • 硬件-软件边界理解:看懂原理图、读懂数据手册、理解时序图、管理内存与中断优先级。AI不知道你用的MCU是STM32F103还是ESP32-S3,更不知道你的PCB上有哪些外设共用总线。
  • 资源受限下的工程权衡:代码体积、执行时间、功耗、实时性,这些是嵌入式永恒的“不可能三角”。AI生成的代码往往“功能正确但资源浪费”,比如在仅有8KB RAM的单片机上给你开一个大型缓冲区。
  • 调试与问题定位:逻辑分析仪抓波形、看寄存器值、分析HardFault、复现偶发bug,这些需要人的经验和直觉。AI无法替你摸电路板、测电压。
  • 安全与可靠性思维:嵌入式系统常在医疗、汽车、工控领域运行,一个指针越界可能造成物理事故。这需要严格的编码规范、静态分析、单元测试——AI不会主动为你做。

你的不可替代价值:从“写代码实现功能”升级为“定义约束、权衡方案、验证系统”的角色。

二、如何利用AI:让它成为你的“超级实习生”

不要神话AI,也不要排斥。正确的用法是:

场景 用AI做 自己做
编写驱动模板 根据数据手册引脚描述,生成SPI/I2C初始化代码框架 核对时序参数、修改错误的中断优先级、调整GPIO模式
解释陌生代码 粘贴一段看不懂的寄存器操作,让AI解释每行含义 结合芯片手册验证解释是否正确,理解设计意图
生成测试用例 为某个函数自动生成边界值、异常输入的测试代码 审查覆盖度,补充硬件相关测试(如掉电、复位)
文档与注释 让AI为你的函数写规范的Doxygen注释 确认注释与实际行为一致
代码重构 把长函数拆成小函数,或把平台相关代码抽象出来 评估重构是否影响实时性、内存占用
学习新外设 问“I2C的时钟拉伸是什么,在STM32上如何配置” 手动写一个最简单的读写例程,用逻辑分析仪抓波形验证

核心原则:AI生成的每一行代码,你都必须理解其原理,并能够手工修改。否则它就是悬在项目里的“定时炸弹”。

三、如何学习新知识:必须走“笨路”,才能走“巧路”

对于嵌入式新手或学习新领域(比如从裸机转向RTOS、从ARM Cortex-M转向RISC-V、从蓝牙转向Wi-Fi Mesh),绝对不要直接用AI生成项目代码来学。

正确的学习路径(以学习FreeRTOS为例):

  1. 概念建立:读经典书籍(如《嵌入式实时操作系统:基于STM32CubeMX》),理解任务、队列、信号量、互斥量的设计动机。
  2. 最小实践:手工创建两个任务,一个点灯,一个串口打印。不用任何生成代码,自己写xTaskCreatevTaskDelay。遇到语法错误自己查。
  3. 深入机制:尝试修改任务栈大小导致溢出、故意优先级反转、用中断同步任务。观察现象,理解为什么需要临界区。
  4. AI辅助加速:当以上步骤都亲手做过一遍后,遇到“如何实现一个环形缓冲区用于串口DMA接收”时,可以让AI生成参考实现,但你需要能指出:它的代码是否支持多任务并发?是否考虑了缓存行对齐?是否有潜在的竞态条件?
  5. 项目实战:做一个综合项目(如智能小车、环境监测站),这次允许你大量使用AI生成样板代码,但你自己负责架构设计、硬件调试、性能调优。

为什么不能跳步? 因为嵌入式知识是“经验性”的。没被中断嵌套坑过,就永远看不懂NVIC_PriorityGroupConfig的含义;没自己手写过链接脚本,就不知道为什么变量会跑到错误的地址段。AI可以给你答案,但给不了“痛感”,而痛感才是最深的学习。

四、具体建议:未来3年的行动计划

  • 第1年(打基础)

    • 手写一个完整项目:从零搭建工程、配置时钟、写GPIO/I2C/SPI驱动、实现一个简单协议(如Modbus)。全程禁止AI生成核心代码,只允许查资料和参考数据手册。
    • 学习用调试器、逻辑分析仪、示波器。
  • 第2年(善用AI)

    • 开始在日常工作中引入AI:用它生成单元测试、注释、重复性的初始化代码。
    • 建立自己的“代码审查清单”:每次使用AI生成的代码,强制检查:内存安全、实时性影响、硬件兼容性、错误处理。
  • 第3年(提升维度)

    • 从“写代码”转向“设计系统”:学习UML状态机、事件驱动架构、安全标准(如ISO 26262、MISRA C)。
    • 训练一个本地化的代码模型(如基于CodeLlama微调),让它学会你们公司的硬件抽象层规范和驱动风格,真正成为团队的“自动驾驶辅助”。

最后一点心态

AI不会淘汰嵌入式工程师,但会淘汰那些只会复制粘贴、不关心底层原理的“搬运工”。反过来,懂得利用AI的嵌入式工程师,效率会是传统工程师的3-5倍——因为他们把80%的精力放在了20%真正需要人类智慧的事情上(架构、调试、权衡、创新)。

所以,现在就可以开始:今天写一个LED闪烁程序,先自己手动查手册、写寄存器配置,跑通后再问AI“请用HAL库实现同样的功能”,比较两种写法的优劣。这个过程本身,就是最好的学习。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐