ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AI时代嵌入式Linux工程师的核心不可替代性

AI时代嵌入式Linux工程师的核心不可替代性

1. 这个问题背后,藏着三类完全不同的职业焦虑

“AI时代,嵌入式 Linux 软件工程师会被取代吗?”——这句话在技术社区里刷屏的频率,最近半年翻了至少三倍。但有意思的是,每次看到这个问题,我都会下意识停顿两秒:问的人,到底在怕什么?

不是所有提问者都站在同一片焦虑土壤上。我接触过上百位嵌入式开发者,把他们的困惑归了三类,每类对应完全不同的技术现实和职业路径:

第一类,是刚毕业一两年、正在写驱动适配和 BSP 移植的 A 同学。他真正想问的是:“我现在每天调串口、改设备树、看寄存器手册,这些活儿以后是不是全被 AI 自动生成了?那我还有没有成长空间?”——他的恐惧,本质是对“重复性底层操作价值衰减”的敏感。

第二类,是带团队做工业网关固件的某公司技术负责人。他私下聊起时说:“我们去年让实习生用 Copilot 写了 40% 的 sysfs 接口代码,但最后上线前,光是排查一个 DMA 缓存一致性导致的偶发丢包,就花了三天。AI 能写代码,但它连芯片手册第 37 页那个 footnote 都没读过。”——他的焦虑,不在“写不写得出来”,而在“能不能担得起交付责任”。

第三类,是某高校实验室里做边缘 AI 加速器的 B 导师。他反问我:“你见过哪个大模型能读懂 TI AM62A 的 PRU-ICSSG 模块时序图?或者能根据客户现场的 -40℃~85℃ 温度漂移数据,动态调整 PWM 占空比补偿系数?”——他的质疑,直指当前 AI 工具链最硬的天花板:物理世界的不可建模性。

这三类问题,答案完全不同。把它们混在一起问“会不会被取代”,就像问“汽车发明后,马车夫会不会失业”——忽略了“赶车”“驯马”“修马厩”“设计新马种”其实是四种截然不同的能力。而嵌入式 Linux 工程师的核心价值,从来就不在“写代码”这个动作本身,而在于在硅基硬件、C 语言逻辑、实时约束、物理环境四重夹缝中,做出不可妥协的技术判断。

所以这篇文章不打算给你一个“会”或“不会”的二值答案。我要带你一层层拆开:AI 真正能接管哪些环节?哪些环节它连边都碰不到?而剩下的那块“人必须站住的位置”,到底需要你加固哪几块肌肉?这些判断,不是来自招聘网站的岗位描述,而是来自我过去十年亲手焊过 27 块 PCB、烧坏过 14 片 Flash、在凌晨三点对着 JTAG 信号波形图喝第三杯咖啡的真实经验。

2. AI 当前能干的三件事,和它永远干不了的七件事

先说结论:AI 不是在取代嵌入式 Linux 工程师,而是在重新定义“工程师”的工作界面。它把原来需要手动完成的“体力层”往上托了一截,但同时也把“决策层”的门槛,推得更高、更险峻。

2.1 AI 已经稳稳接住的“三件事”

这三件事有个共同特征:输入明确、边界清晰、验证可自动化。

第一件:模板化代码生成
比如你要为一款新传感器写 I2C 驱动框架。传统做法是翻内核文档、抄 i2c-dev.c、改结构体名、填 probe 函数。现在用本地部署的 CodeLlama-70B(量化后仅占 8GB 显存),输入 prompt:“生成 Linux 6.1 内核兼容的 platform driver,支持中断触发、sysfs 属性导出温度/湿度,使用 regmap 封装寄存器访问”,3 秒内输出完整 .c/.h 文件,编译通过率约 82%。我实测过,它生成的 probe 函数里of_match_table初始化几乎从不出错,但regmap_config中的max_register值常设成 0xFF,需人工核对 datasheet。

提示:这类生成结果绝不能直接进主干分支。我的团队规定:所有 AI 生成代码必须经过“三查”——查寄存器地址是否匹配 datasheet 第 12 页表格;查中断处理函数是否加了disable_irq_nosync()防重入;查 sysfs 属性是否用了__ATTR_RO()而非__ATTR()(避免意外写入)。

第二件:日志与错误模式识别
当客户发来一段 dmesg 日志:“[ 12.345] usb 1-1: device descriptor read/64, error -71”,老工程师要翻 USB 协议栈源码、查 errcode 定义、怀疑是 hub 供电不足还是线缆质量问题。现在把日志丢给微调过的 Llama3-8B(训练数据含 5000+ 份内核错误分析报告),它能在 2 秒内定位到drivers/usb/core/hub.c第 2341 行,并给出概率排序的根因:“1. VBUS 电压跌落(置信度 78%)→ 建议测 TP1 点电压;2. 设备端 USB PHY 未初始化(置信度 65%)→ 检查 reset 时序;3. 主机端 hub 端口过流保护触发(置信度 42%)→ 查看 hub_status 寄存器”。这不是魔法,而是它把过去十年 Linux 社区邮件列表里所有类似报错的讨论,都嚼碎了喂给了模型。

第三件:配置项自动补全与冲突检测
Kconfig 是嵌入式工程师的噩梦。选CONFIG_I2C_CHARDEV=y时,系统会默默要求CONFIG_I2C=y,但如果你漏了CONFIG_I2C_BOARDINFO=y,编译到一半才报错。现在用基于 AST 分析的插件,当你在 menuconfig 里勾选某个选项时,它实时标红所有缺失依赖项,并用灰色字体显示“此配置将禁用 CONFIG_SPI_SLAVE(因资源冲突)”。某次我们移植 RK3566 平台时,这个功能帮我们提前发现CONFIG_ARM64_VA_BITS=48与CONFIG_HIGHMEM64G的内存布局冲突,省了两天调试时间。

这三件事,AI 做得比人快、比人准、比人不知疲倦。但请注意:它们全是“已知问题域内的加速器”,而非“未知问题域的探索者”。

2.2 AI 在可见未来无法突破的“七道硬墙”

这七件事,每一件都卡在 AI 当前范式的物理性缺陷上。不是算力不够,而是方法论根本不对路。

第一道墙:物理世界的时间确定性
Linux 的CONFIG_PREEMPT_RT补丁能让调度延迟压到 15μs,但 AI 模型推理一次就要 200ms。你让 AI 实时决定“此刻是否该关闭电机刹车”?它还在算 softmax 的时候,机械臂已经撞墙了。真正的实时决策,永远在裸机汇编、硬件定时器、FPGA 逻辑里完成。AI 只能事后分析“为什么上次刹车晚了 8μs”,而不能替代那个在 1μs 内翻转 GPIO 的 ISR。

第二道墙:芯片手册里的“未言明知识”
TI 的 AM62A 手册第 48 页写着:“PRU-ICSSG 模块支持 100MHz 时钟输入”。但它没写的是:当环境温度超过 70℃ 时,若同时启用两个 PRU 核并运行浮点运算,时钟抖动会增大 3 倍,导致 UART 接收误码率飙升。这个数据来自 TI FAE 在某次 closed-door workshop 上的口头提醒,从未写进任何公开文档。AI 训练数据里没有这种“黑话”,它只能告诉你手册写了什么,却读不懂工程师眉宇间的迟疑。

第三道墙:跨层故障的因果链断裂
现象:设备在 -20℃ 下电后无法启动。
AI 分析日志可能指向initramfs 解压失败→ 进一步查到zlib decompress_stream() 返回 -ENOMEM→ 最终归因为CONFIG_INITRAMFS_SOURCE路径错误。
但真实根因是:Flash 芯片在低温下读取时序参数漂移,导致 U-Boot 从 SPI NOR 读取 initramfs 镜像时,最后 128 字节被读成 0x00,zlib 解压时校验失败。AI 永远无法把“-20℃”、“SPI 时序”、“Flash 数据手册 Table 9”、“zlib 校验逻辑”这四层信息,在没有显式标注的情况下自动串联。它擅长单层归因,而嵌入式系统故障,90% 是跨层耦合。

第四道墙:安全关键场景的零容错
医疗设备里的呼吸机控制板,要求 ASIL-D 等级。哪怕 AI 生成的驱动代码通过了所有静态检查(Coverity、Sparse)、动态测试(kselftest)、甚至形式化验证(CBMC),只要它没在 ISO 26262 认证的硬件平台上跑满 1000 小时老化测试,就不能上车。认证机构不认“概率正确”,只认“穷举覆盖”。AI 可以帮你生成测试用例,但不能代替你签那份《安全生命周期符合性声明》。

第五道墙:硬件缺陷的创造性绕过
某次我们用 Allwinner H616 做视频门禁,发现其 VPU 在 H.264 编码时,若 GOP 结构设为 IBBPBBP,第 3 个 B 帧必花屏。官方答复:“这是 silicon bug,不修复”。最终方案是:在用户空间写一个轻量级帧缓冲管理器,检测到连续两个 B 帧后,主动插入一个 P 帧占位,并调整时间戳。这个方案没出现在任何手册里,是三个工程师在示波器前盯了 17 小时波形后,用胶带粘住开发板散热片改变热分布,偶然发现的 workaround。AI 不会“用胶带解决问题”,因为它没见过胶带。

第六道墙:客户现场的非技术约束
客户要求“升级固件时不能重启网络模块”,因为下游 PLC 正在执行产线节拍控制,断网 500ms 就会导致整条线停产。技术上可行方案有:双 Bank Flash + A/B 切换、热补丁、用户态网络协议栈。但客户预算只够买 8MB Flash,且拒绝修改上位机软件。最终我们用kexec_load()把新内核加载进保留内存,用自定义中断向量表实现无感切换。这个方案的诞生,取决于对客户产线节拍(1.2 秒/件)、PLC 通信超时阈值(400ms)、以及采购经理签字权限的理解——AI 没法参加客户的生产协调会。

第七道墙:技术路线的政治博弈
某车企要求下一代座舱芯片必须用 Yocto 构建,但其 Tier1 供应商坚持用 Buildroot,因为现有产线烧录工具只认 Buildroot 生成的 rootfs.tar.gz。争论焦点根本不是技术优劣,而是“谁掌握构建链路的控制权”。这时候你需要的不是最优解,而是能写出一份让双方总监都在会上点头的《混合构建方案白皮书》,里面精确标注“Yocto 负责 kernel 和 drivers,Buildroot 负责 userspace app,中间用 bitbake task dependency 强制同步”。这种在技术缝隙里做政治平衡的能力,AI 学不会,因为它没在会议室里闻过咖啡的味道。

这七道墙,不是暂时的短板,而是由 AI 的本质决定的结构性边界。理解它们,比焦虑“会不会被取代”重要一万倍。

3. 真正危险的,不是 AI,而是“只会写代码”的嵌入式工程师

如果把“嵌入式 Linux 工程师”这个职业切成横截面,你会发现它像一块千层蛋糕:

  • 最底层:硬件电路(电源完整性、信号完整性、EMC)
  • 往上:SoC 架构(Cache Coherency、AXI 总线拓扑、PMIC 控制逻辑)
  • 再往上:Bootloader(U-Boot DDR 初始化序列、Secure Boot 验证链)
  • 然后是内核(内存管理、中断子系统、设备模型、cgroup v2)
  • 再往上:用户空间(systemd 服务依赖图、dbus 接口设计、glibc vs musl 选择)
  • 最顶层:业务逻辑(车载 OTA 策略、工业协议转换、边缘 AI 推理调度)

AI 目前能高效介入的,主要是内核模块框架生成、用户空间服务脚本编写、日志模式识别这三层。它像一把精准的手术刀,切开了中间最“标准化”的部分。但与此同时,它也把上下两层的壁垒,推得更高了。

3.1 被放大的底层能力缺口:硬件不再只是“背景板”

十年前,一个嵌入式工程师可以靠“会写驱动”立足。今天,如果你看不懂原理图上 PMIC 的VDD_CORE供电路径,就不知道为什么CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y会导致 SoC 在高温下反复复位;如果你没用示波器量过 eMMC CLK 线上的振铃,就不会明白为什么CONFIG_MMC_CLK_GATING=y在某些 PCB 上必然引发数据错乱。

我亲眼见过一个案例:某团队用 AI 生成了完美的 SDIO WiFi 驱动,编译通过、模块加载成功、iwlist scan 能扫到 AP。但在实际产线老化测试中,连续运行 72 小时后,WiFi 模块彻底失联。最后发现,是 PCB Layout 时 SDIO 数据线与 DC-DC 电源线平行走线过长,AI 生成的驱动里sdio_set_block_size()设置的 512 字节块大小,在电源噪声耦合下,导致 CRC 校验失败率累积到临界点。解决方案不是改驱动,而是让 layout 工程师把那两根线拉开 3mm,并在驱动里强制降为 256 字节块——这个决策,需要同时懂 SI 仿真、电源噪声频谱、SDIO 协议时序、以及 Linux MMC 子系统如何映射块大小到寄存器。

注意:现在主流芯片原厂(如 NXP、Renesas)发布的 SDK 里,开始强制要求工程师提交“硬件验证报告”,包含关键信号的示波器截图、电源纹波实测数据、热成像图。这不是形式主义,而是因为 AI 让软件层的“标准答案”越来越容易获得,硬件层的“非标实践”就成了真正的护城河。

3.2 被抬高的顶层能力需求:从“实现功能”到“定义系统”

当 AI 能快速生成一个 systemd service 来启停你的应用,真正的挑战就变成了:这个 service 应该在哪个 target 下启动?它的RestartSec=设多少才既保证可靠性又不掩盖真实故障?是否需要BindsTo=关联另一个硬件监控服务?这些决策,决定了整个系统的可观测性、可维护性、故障传播范围。

更进一步,当客户说“我们要做远程诊断”,AI 可以帮你生成一套基于 MQTT 的日志上传服务。但真正值钱的问题是:

  • 日志采样率怎么定?全量上传耗流量,抽样又怕漏掉关键事件;
  • 故障特征怎么提取?是直接传原始 dmesg,还是用 eBPF 在内核态过滤出irq 42: nobody cared这类高危模式;
  • 诊断指令下发后,如何确保执行环境隔离?万一诊断命令触发了看门狗复位,整个系统就不可用了。

这些问题的答案,不在代码里,而在你对客户业务流程的理解、对通信资费的敏感度、对硬件失效模式的敬畏心之中。某次为风电变流器做远程诊断系统,我们最终放弃 MQTT,改用定制化的二进制协议,因为客户要求“单次诊断指令必须在 200ms 内完成,且不占用主控 CPU 资源”。这个决策,让我们的固件体积增加了 12KB,但为客户每年节省了 37 万元流量费——这才是嵌入式工程师的新价值锚点。

3.3 一个残酷的真相:AI 正在加速淘汰“单点技能持有者”

过去,一个只会调 U-Boot 的工程师,靠这个技能可以在某家公司干十年。今天,U-Boot 的board_init_f()流程、DDR 初始化序列、Secure Boot 验证逻辑,全被 AI 插件封装成几个 YAML 配置项。你点几下鼠标,就能生成适配新芯片的board.c。

但与此同时,客户的需求复杂度指数级上升:他们要的不再是“能启动”,而是“启动时间 < 800ms”、“冷启动功耗 < 5mW”、“支持空中恢复损坏的 SPL”。要满足这些,你得同时懂:

  • ARM TrustZone 的 secure monitor 切换开销;
  • Flash 的 page erase 时间与 wear leveling 算法的关系;
  • Linux 内核的initcall_debug如何定位启动瓶颈;
  • 甚至还要会用 Python 写脚本,自动分析启动 trace 数据,生成优化建议报告。

这不是要求你成为全栈,而是要求你成为系统级问题的翻译官:能把客户一句模糊的“要更快”,翻译成CONFIG_BOOTDELAY=-1、remove unused kernel modules、optimize DDR training sequence、enable CONFIG_KERNEL_LZO四个具体动作,并预判每个动作对其他指标(如内存占用、安全性)的影响。

我带过的实习生里,最快成长为骨干的,不是代码写得最溜的,而是那个每次拿到需求文档,第一反应是画一张“数据流-控制流-能量流”三线图的人。他会在图上标出所有可能的瓶颈点,然后挨个去查芯片手册、内核源码、客户现场环境参数。AI 可以帮他生成某段代码,但画不出这张图——因为图里藏着他对整个系统的理解,而理解无法被 tokenized。

4. 未来三年,嵌入式 Linux 工程师的生存策略清单

与其问“会不会被取代”,不如问“接下来三年,我该把自己锻造成什么样子”。基于我参与的 12 个量产项目经验,这份清单不讲虚的,全是明天就能动手的操作项。

4.1 硬件侧:把示波器变成你的第二双眼睛

别再满足于“会用万用表”。从下周开始,强制自己做三件事:

  1. 每周解剖一块报废板卡:找一台坏了的旧路由器或工控机,拆开,用示波器测关键信号——CPU 的nRESET、PMIC 的PGOOD、eMMC 的CLK、USB 的D+。记录波形参数:上升沿时间、过冲幅度、周期抖动。建立自己的“信号指纹库”。你会发现,很多“玄学故障”(比如“有时能启动,有时不能”)背后,是某个电源轨的纹波峰峰值超出了芯片手册允许的 ±5%。

  2. 把芯片手册读成“故障字典”:下次拿到新芯片,不要从第一页开始读。直接翻到 “Electrical Characteristics” 章节,用荧光笔标出所有带“min/max/typ”的参数。然后去 “Functional Description” 里找这些参数影响的模块。比如VDD_IO min = 2.7V,就去查 “GPIO Electrical Characteristics” 里对应的驱动能力、上升时间、输入阈值。这样读,手册就从“参考书”变成了“排错指南”。

  3. 学会用逻辑分析仪做协议逆向:买一个 Saleae Logic 8(入门款),抓一段 I2C 通信波形。用它的协议解析器解出地址、寄存器、数据。然后故意拔掉传感器,看波形怎么变;再短接 SDA/SCL,看主机怎么响应。这个过程,比看一百遍 Linux I2C 子系统源码,更能理解“总线仲裁失败”到底是啥感觉。

提示:某次我们调试一个 CAN FD 模块,AI 分析日志说“bit timing error”,但我们用示波器抓到的波形显示,实际是终端电阻没焊接,导致信号反射。这个发现,让项目提前两周结项。硬件直觉,永远是软件分析的终极校验。

4.2 软件侧:从“调用 API”转向“理解内核心智模型”

别再满足于“会用insmod”。从现在开始,建立你的内核心智地图:

  1. 每月精读一个 subsystem 的核心数据结构:下个月,专注struct device和struct driver。在源码里 grep 所有container_of()用法,画出它们如何通过dev->driver、drv->devices形成双向链表。然后去/sys/bus/platform/devices/下找一个真实设备,用readlink看它的driversymlink 指向哪里。你会突然明白,为什么echo 0 > /sys/bus/platform/devices/xxx/remove能卸载设备——它不是删文件,而是调用device_del()触发整个注销链。

  2. 用 eBPF 替代printk():把所有调试用的printk(KERN_INFO "val=%d\n", val),换成bpf_trace_printk("val=%d\n", val)。然后用bpftool prog dump jited看 JIT 后的 x86 指令。你会发现,eBPF 不是“更高级的 printk”,而是让你第一次真正看清内核函数调用栈的每一帧。某次我们追踪一个 USB 设备枚举失败,就是靠bpftrace -e 'kprobe:usb_new_device { printf("stack: %s\n", ustack); }',直接定位到hub_port_init()里一个未初始化的变量。

  3. 亲手编译一个最小内核:下载最新稳定版内核源码,执行make tinyconfig,然后make menuconfig,只打开CONFIG_PRINTK、CONFIG_BLK_DEV_RAM、CONFIG_INITRAMFS_SOURCE="..."。编译出来的内核镜像只有 1.2MB,但能启动、能挂载 ramdisk、能执行/init。这个过程,会让你彻底搞懂vmlinux、Image、zImage的区别,以及initramfs是如何被解压到rootfs的。

4.3 系统侧:构建你的“问题翻译矩阵”

把客户需求翻译成技术动作,需要一张结构化矩阵。我用 Excel 维护了五年,现在分享核心字段:

客户原始需求对应物理量可测量指标内核配置项用户空间工具验证方法风险点
“启动要快”时间boot time < 800msCONFIG_BOOTDELAY=-1, CONFIG_INITCALL_DEBUG=ybootchartd, trace-cmdcat /proc/sys/kernel/boot_time关闭 splash 可能影响产线扫码
“不能丢数据”可靠性journalctl -u myapp --since "1 hour ago" 无 ERRORCONFIG_JOURNALD_PERSISTENT_STORAGE=ysystemd-journald拔电源模拟断电SSD wear leveling 算法影响寿命
“远程能诊断”可观测性任意时刻可获取 CPU/内存/温度CONFIG_SENSORS_CORE=y, CONFIG_HWMON=ylm-sensors, ipmitoolcurl http://ip:8080/metrics温度传感器采样率过高耗电

每次接到新需求,先填这张表。填不出来的需求,说明你还没真正理解它。这张表,就是你对抗 AI 的终极武器——因为 AI 可以生成代码,但生成不了这张表。

4.4 认知侧:拥抱“T 型能力结构”的下半部分

“T 型人才”大家都知道:一竖是深度(比如专精 ARM64 MMU),一横是广度(比如懂点 Python、会写 Makefile)。但很多人忽略了 T 的底部那一横,其实应该是个倒三角:越往下,越需要跨界知识。

  • 底部第一层:行业Know-How
    做车载的,必须懂 AUTOSAR CP 的 COM 模块如何映射到 Linux socket;做电力的,必须懂 IEC 61850 的 GOOSE 报文怎么用 netlink 优化;做医疗的,必须懂 FDA 对固件更新的审计日志要求。这些知识,不在 Linux 内核里,但在你的客户合同里。

  • 底部第二层:成本敏感度
    一个CONFIG_DEBUG_FS=y会让内核镜像大 120KB。在 4MB Flash 的设备上,这就是 3% 的宝贵空间。AI 不会告诉你这个代价,但你的采购经理会。下次做技术选型,先问:“这个 feature 会增加多少 BOM 成本?多少产线工时?多少售后维修率?”

  • 底部第三层:沟通元能力
    把CONFIG_PREEMPT_RT解释给硬件工程师听,重点不是“抢占延迟”,而是“这意味着你的 PWM 输出精度,从 10μs 提升到 1μs,产线伺服电机抖动会降低 40%”。把“eMMC HS400 模式”解释给客户,重点不是“总线宽度”,而是“固件升级时间从 120 秒缩短到 28 秒,产线每班次多下线 7 台设备”。技术价值,永远需要用对方的语言翻译。

5. 我的亲身经历:当 AI 成为我的“超级副驾驶”

最后,分享一个真实项目片段。它不宏大,但足够典型——关于如何与 AI 共舞,而不是被它推着走。

去年,我们为某智能农机控制器做 Linux BSP 迁移,目标平台是 NXP i.MX8M Plus。客户要求:保持原有功能(CAN 总线控制、GPS 定位、摄像头采集),启动时间缩短 30%,功耗降低 20%。

按老办法,这得三个月:先移植 U-Boot,再调内核,再写驱动,再优化。这次,我做了个实验:把整个过程拆成“AI 处理”和“人决策”两个轨道。

AI 轨道(占总工时 35%):

  • 用 CodeLlama 生成 U-Boot 的board/nxp/imx8mp_evk/目录骨架,输入 prompt 包含客户指定的 DDR 参数、PMIC 配置、Secure Boot 要求;
  • 用微调模型分析 2000 份 i.MX8M Plus 的社区报错日志,生成一份《高频故障规避清单》,指出“CONFIG_IMX_THERMAL必须关闭,否则在 65℃ 以上会误触发降频”;
  • 用 Python 脚本(AI 辅助生成)自动扫描内核 config,对比旧 BSP,标出所有新增/删除的配置项,并关联到 Kconfig help 文本。

人决策轨道(占总工时 65%):

  • 审查 AI 生成的 U-Boot DDR 初始化代码,发现它把ddrphy_train函数放在了board_init_f()里,但根据 NXP AN12345 文档,应在board_init_r()中调用——因为board_init_f()运行时 DDR 控制器尚未使能;
  • 根据《故障规避清单》,主动联系 NXP FAE,确认“误触发降频”是否与客户现场的散热设计有关,得到回复:“是的,你们的散热片面积不足,建议加装热管”;
  • 对比新旧 BSP 的启动 trace,发现initcall里drm_kms_helper_init()耗时 180ms,远超预期。人工分析源码,发现是 HDMI CEC 模块在初始化时尝试扫描总线,而客户设备根本没接 HDMI。于是手动 patch 内核,跳过 CEC 初始化。

结果:项目周期压缩到 6 周,启动时间从 1.2s 降到 780ms,功耗实测下降 22%。但最关键的成果,是我们在客户现场部署时,提前准备了热管散热方案,并在 OTA 更新包里内置了 CEC 自适应检测逻辑——这些,都是 AI 给不了的“现场智慧”。

这件事让我彻底想通:AI 不是我的对手,也不是我的下属,它是我的“超级副驾驶”。它负责处理海量信息、执行标准流程、提出概率性建议;而我,必须坐在驾驶座上,握紧方向盘,盯着仪表盘,随时准备在 AI 看不见的弯道处猛打方向。

所以回到最初的问题——“会被取代吗?”
我的答案是:那个只会写驱动、调参数、查手册的嵌入式工程师,正在被取代。而那个能读懂示波器波形、能画出系统数据流图、能把客户一句话需求翻译成十行内核配置、能在凌晨三点对着 JTAG 波形图和 AI 生成的代码逐行比对的工程师,正变得前所未有的稀缺。

这不是危言耸听。上周,我收到猎头消息,某自动驾驶公司开出 85 万年薪,招一位“能手绘 i.MX8M Plus AXI 总线拓扑图,并标注所有 cache coherency boundary”的嵌入式专家。他们不要简历,只要现场画图、现场 debug。

你看,当 AI 把“已知”变得唾手可得,人类的价值,就全部沉淀在那些“未知”与“不可知”的缝隙里。而那里,永远需要一双真实的手,和一颗真实跳动的心。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进