一、AI引发的行业回响
古法编程——用C语言手动编写外设驱动、调度逻辑和应用状态机,一行一行地构建起整个ECU的软件血肉。
三年前,我还很庆幸AI的出现,帮我偷偷节省了不少时间,只不过那时候的AI生成的代码还需要我一行行去审核,到了今天部门领导也是注意到了AI,天天喊着AI增效。
如今的AI不再是三年前的样子了,不知道从什么时候开始,AI突然变得聪明了起来,它不仅能实现想要的代码逻辑,一个函数功能。如今它可以理解整个工程,多个文件,这个变化不仅是小牛马注意到了,领导门也是注意到了,目前,我们部门不在是看怎么编写更好的代码,而是天天研究如何给AI下指令。
二、为何嵌入式敲代码难以为继
首先必须厘清,所谓"古法编程"并非贬义,它指的是嵌入式开发中那种精益求精的工匠方式:工程师深入芯片手册,直接操作寄存器,为节省每一个字节的RAM和每一条指令周期而绞尽脑汁,用手写的调度器来协调不同优先级的任务,用标志位和环形缓冲构建起一个个小巧而可靠的通信协议栈。
在微控制器资源极度受限、功能相对单一的年代,这种方式不仅高效,而且打造出了一大批时序精准、运行稳固的ECU。然而当汽车电子从分散的独立功能走向域集中、跨域融合甚至中央计算平台,古法编程的固有局限开始暴露无遗:
- 其一,可维护性与可移植性的塌方式缺失。
每一个手写模块都与特定芯片的硬件抽象深度绑定,换一颗MCU往往意味着大量代码需要重写。当平台化、车型谱系扩张时,软件复用的成本高得惊人。一位工程师离职,他精心构筑的"精巧大厦"很可能因为缺少文档和注释而变成其他人不敢轻易触碰的技术债务。 - 其二,复杂性失控。
一个高级驾驶辅助系统的ECU可能需要同时处理摄像头、雷达、激光雷达数据流,运行感知、融合、规划决策等多种算法,并与其他几十个控制器进行精密时序协同。手工维护各个任务间错综复杂的依赖关系、数据一致性和时序约束,已经超出了人脑可靠管理的上限。再出色的程序员,也难免在宏大的逻辑迷宫中埋下竞态条件或优先级反转的隐患。 - 其三,安全认证的沉重枷锁。
在ISO 26262功能安全的框架下,每一条手写代码都需要进行严格的安全分析、测试覆盖度验证。一个ASIL D等级的软件组件,其开发和验证成本往往是普通组件的数倍甚至数十倍。手写代码的非结构化属性使得安全论证异常艰难,修改一行代码可能牵动整个安全档案的重新举证。 - 其四,难以满足持续迭代的产业节奏。
软件定义汽车意味着整车功能需要像手机一样通过OTA持续更新。今天手写的一个转向控制逻辑,可能三个月后就要增加新的补偿算法,半年后又要适配新的传感器。如果底层代码是铁板一块的"古法作品",这种敏捷迭代将成为奢望。
正因如此,AI对于我们的冲击可不小,但是我们是有破局之道的,AI可以说解放了我们一个一个语句写代码的工作,但是我们可以转向更高一级、更不容易被取代的方向——架构设计,这需要我们静下心来,慢慢研究。
三、AUTOSAR架构
AUTOSAR的出现并非偶然,它是汽车工业对软件危机的一次集体回应。它的核心理念是分层解耦与标准化接口——将软件切分为应用层(SWC)、运行时环境(RTE)和基础软件层(BSW),并在每一层内部再次细化为一系列标准模块。应用软件组件通过虚拟功能总线(VFB)进行通信,完全不必关心信号最终是走CAN、LIN、以太网还是共享内存。
在这种架构下,开发的重心发生了根本性位移。过去工程师主要面对的是代码文本编辑器,一行行编织逻辑;现在他们更多面对的是配置工具和模型编辑器,定义软件组件的接口、内部行为(通过模型或者代码片段)、数据映射、触发方式与调度策略。大量的"敲代码"工作被工具链自动生成替代:RTE由配置生成,BSW模块由参数设定生成,操作系统任务映射由系统描述生成。开发者的身份从纯粹的代码编写者,转变为系统定义者和架构配置者,让AI成为辅助工具,而不是替代我们的人。
这种转型带来的益处是多方面的。软件组件可以在不同ECU、不同项目中近乎"即插即用";复杂系统的集成可以依靠工具链的自动校验来避免大量低级错误;功能安全的证据链条可以通过配置文件和生成代码的追溯性来清晰建立;而当AI进入这个框架时,它的能量得以被成倍放大。
四、AI:是架构化转型的超级催化剂
当前AI在软件开发中的应用大多还集中在代码补全和简单函数生成层面。但在高度结构化的AUTOSAR生态里,AI的潜力远不止于此。我们可以从几个层面来观察它的催化作用:
配置生成与优化。 AUTOSAR开发中最繁重的一环是对BSW模块进行细致入微的配置,比如通信栈的PDU路由、网络管理参数、诊断事件映射等。这些工作规则性强但细节海量,传统上靠熟练工程师耗费大量时间核对。
应用层代码与模型的自动构建。 许多汽车功能逻辑可以用状态机、流程图或Simulink模型来表达。AI可以辅助乃至主导从需求文本到初步模型的转化,再通过强化学习在虚拟环境中对模型进行验证和调优。
系统集成与测试的智能化。 在中央计算平台中,数十个SWC的集成与RTE映射异常复杂。
AI不会完全消灭代码生产的需求,但它会急剧降低"纯粹编写代码"这一行为在整体价值链条中的比重。能够清楚定义组件交互协议、设计弹性可扩展的系统拓扑、制定恰到好处的安全分解策略的架构师,将成为最稀缺的资源。
五、为什么不能全然抛弃"古法编程"
尽管重心向架构转移是明智且必然的,但手写代码也不能丢。
架构的血肉需要底层实感来支撑。 一个从来没有亲手调试过CAN总线负载、没有深究过看门狗时序、没有体验过微秒级中断抖动带来的诡异的架构师,很容易设计出表面上完美解耦、实际运行时却灾难频发的系统。
安全关键代码永远需要人的审慎干预。 ISO 26262和即将到来的自动驾驶安全标准,对软件工具链的置信度有严格要求。AI生成的代码在当前和可预见的将来,还很难单独满足最高安全完整性等级的证据要求。架构师和资深工程师必须有能力阅读、理解、评估AI生成的代码,甚至在关键安全路径上依然采用人工编写并经过严格形式化验证的组件。
"古法"中的精髓应当被编码进新的范式里。 古法编程所代表的对资源的极致敬畏、对时序确定性的偏执追求、对代码健壮性的零容忍,这些品质本身就是汽车嵌入式软件的灵魂。
六、嵌入式工程师的进化之路:架构为骨,AI为翼
那么,站在十字路口的嵌入式软件工程师,应该如何重塑自己的能力拼图?这条进化路径并非抛弃过往、另起炉灶,而是在旧有的坚实根基上,长出新的枝干。
- 第一,深度拥抱AUTOSAR的方法论与生态。
这不仅仅是学会使用某个厂商的配置工具,而是要理解其设计哲学:为什么这样分层,虚拟功能总线解决了什么问题,运行时环境如何做到静态配置与动态通信的平衡。要能从系统需求出发,进行软件组件的合理切分和接口定义,能制定出符合整车电子电气架构的SWC部署方案。更进一步,对AUTOSAR Adaptive平台和面向服务的架构(SOA)的理解,将决定工程师能否跨入中央计算和车云一体的新战场。 - 第二,从"代码编写者"转变为"AI协同工作者"。
这意味着要学会向AI准确描述需求,设计有效的提示词来生成符合AUTOSAR规范的配置或代码片段;要学会构建校验管道,对AI的输出进行静态分析、单元测试和SIL/HIL验证;要学会将复杂的系统分解成AI可以消化的模块,并将AI生成的模块拼装成可靠的整体。 - 第三,夯实领域知识,让架构带有灵魂。
无论是功能安全、信息安全,还是车辆动力学、传感器融合,这些领域知识是架构决策的最终依据。AI可以给出建议,但它无法替代人去判断某个功能分解是否满足ASIL分解规则,某种通信延迟是否会导致车辆失稳。架构师的价值在于能够将领域约束系统性地注入架构的骨架之中,让生成的代码天然带有安全、可靠的基因。 - 第四,保留"手作"的温度作为终极防线。
即便在日常工作中不再大规模手写代码,保持对底层实现的理解和手感仍然至关重要。定期深入一两个关键模块的实现细节,阅读编译器生成的汇编,分析运行时trace,这些像是在体能训练中对核心肌群的锻炼——平时或许不显山露水,但当系统出现诡异故障、AI工具链给出的答案自相矛盾时,这份深植于硬件的第六感将是解决问题的最后依靠。 
关注公众号领取资料




夜雨聆风