把 ECU 软件交给 openAUTOSAR 经典平台:一条能走通的入门路线
把 ECU 软件交给 openAUTOSAR 经典平台:一条能走通的入门路线
【免费下载链接】classic-platformOpen source AUTOSAR classic platform forked from the Arctic Core项目地址: https://gitcode.com/gh_mirrors/cl/classic-platform
各家 ECU 软件各写各的:CAN 栈、诊断、存储互不通用,集成时接口对不上。openAUTOSAR 经典平台把这套标准软件栈开源出来,让你能对着真实的板级配置读源码,而不只是啃标准文档。
项目定位:它从哪来
它 fork 自 Arctic Core,一个维护多年的开源 AUTOSAR 平台,代码按 AUTOSAR 3.1 规范整理,以 GPL v2 协议开源。对刚接触 AUTOSAR 开源实现的你,好处有三条:
- 模块划分与 AUTOSAR 标准对齐
- 源码免费,可逐行调试
- 多架构板级配置可参考
代价是它偏底层:应用层组件和标定工具链不在仓库里,这些要你自己补。
能力拆解:四个模块域
仓库按功能域分目录,挑四个最有代表性的看。
通信:从 CAN 到以太网的协议栈
模块最多的一块,位于communication/。
CanNm:CAN 总线的网络管理,管节点唤醒与报文调度。DoIP:把诊断报文封装成 IP 包,经以太网发送。PduR:在协议模块之间转接数据单元,相当于消息总线。
诊断:出故障时怎么查
diagnostic/下是标准 UDS 诊断那套东西。
Dcm:接收诊断请求,按服务路由到处理函数。Dem:记录故障事件,管理 DTC 的存储与老化。Det:内部错误跟踪器,统一收口各模块的报错。
存储:掉电不丢的数据
需要掉电保留的数据走memory/这一层。
NvM:非易失存储入口,决定哪些数据要持久化。Fee:在 Flash 上模拟 EEPROM 的读写。Ea:EEPROM 抽象层,屏蔽芯片差异。
系统与安全:启动和看门狗
系统级模块在system/和safety_security/。
EcuM:管 ECU 状态机,从复位走到正常运行。WdgM:看门狗管理,协调软件心跳与硬件超时。SafeLib:CRC 与 E2E 保护库,给报文做完整性校验。
能干什么:适用边界
- 车身或动力总成 ECU:用标准栈替换自研的 CAN/LIN 通信层,业务逻辑自己写。
- 车载网络接入:CAN、LIN、FlexRay、以太网都有现成协议模块。
- 整车诊断:基于
Dcm、Dem搭 UDS 诊断流程。
它不解决什么:没有应用层组件(SWC)和标定工具链,这部分要按项目需求另找。
上手步骤
- 获取源码:
git clone https://gitcode.com/gh_mirrors/cl/classic-platform- 选定板级支持:
boards/下每个目录对应一块开发板,挑一块你手上有硬件的,比如mpc5777c_mpc57xx_mb。 - 配置通信参数:从所选 board 目录里的配置文件入手,对照硬件引脚和报文矩阵修改。
- 接入业务逻辑:应用侧按 AUTOSAR 接口调用协议栈,不改动底层实现。
接下来读什么
- 根目录
README.md信息有限,编译入口看scripts/和boards/里的构建脚本。 docs/目前只有个别芯片的资料,量不大,别指望靠它入门。- 挑一个
boards/下的配置,照着构建脚本试一次编译,把报错当成学习路径。
【免费下载链接】classic-platformOpen source AUTOSAR classic platform forked from the Arctic Core项目地址: https://gitcode.com/gh_mirrors/cl/classic-platform
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
