30 分钟跑通 openAUTOSAR 经典平台:3 个核心模块与 1 个必踩的坑
30 分钟跑通 openAUTOSAR 经典平台3 个核心模块与 1 个必踩的坑【免费下载链接】classic-platformOpen source AUTOSAR classic platform forked from the Arctic Core项目地址: https://gitcode.com/gh_mirrors/cl/classic-platform先说痛点自己从零写一套符合 AUTOSAR 规范的汽车 ECU 软件栈等于手工翻译上万页标准文档。openAUTOSAR 经典平台fork 自开源项目 Arctic Core是一套可直接编译的经典平台实现通信、诊断、内存三大层的源码全部开放。 它凭什么模块覆盖面是第一点。communication/下收着 CAN 侧的 CanNm、CanTp、CanIf、Com、ComM、PduR以太网侧的 DoIP、SoAd、EthIf、TcpIp还有 Xcp 标定协议和 SecOC 安全通信30 多个协议栈放在同一棵代码树里。做集成测试不用再去拼凑多家供应商的模块实现。第二点是主机可跑。boards/linux/配合system/LinuxOs/提供了 Linux 宿主操作系统适配层整套 AUTOSAR 栈可以在普通 Linux 机器上以普通进程方式运行。验证 Dcm 诊断逻辑、PduR 路由配置时不需要真实 ECU 板子笔记本上先跑通再移植目标硬件新人上手这个项目的成本被明显压低。第三点是板级覆盖。boards/里放了 30 多个板级支持包从 NXP MPC55xx、MPC57xx到 Infineon TC3xx、ARM 的 s32k144 和 STM32 开发板。每块板只提供自己的build_config.mk和驱动配置复用同一份 BSW 源码——新增一块板的成本是配置文件级别不是重写代码级别。 能力拆解DcmUDS 诊断的四状态机结构DcmDiagnostic Communication Manager负责解析 UDSISO 14229诊断报文。在diagnostic/Dcm/src/中Dcm_Dsl.c服务层、Dcm_Dsd.c会话层、Dcm_Dsp.c安全层、Dcm_ROE.c例程控制分别独立成状态机文件与规范中的状态机章节一一对应。熟悉规范四层状态机模型的人翻代码时能在分钟级找到对应实现故障码记录由diagnostic/Dem/的 Dem 负责diagnostic/Det/是默认错误追踪器。DoIP从 lwIP 到车载以太网诊断的完整链路communication/DoIP/实现 Diagnostics-over-IP 协议ISO 13400communication/lwip-2.0.3/内置完整的 lwIP 协议栈communication/TcpIp/是符合 AUTOSAR 规范的 TCP/IP 适配模块SoAd 负责 UDP 套接字地址管理。IP 栈 → 诊断协议这条链路是完整闭环式的做车载以太网架构开发时可以直接在这份代码上做裁剪。NvM非易失性内存的三层拆分memory/目录实现了 NvM非易失性内存管理、EaEEPROM 仿真、FeeFlash EEPROM 仿真、MemIf、RamTst。NvM 只管块读写和原子性Fee 处理 Flash 磨损均衡具体芯片访问由drivers/Fls/驱动完成。三层拆分带来的直接好处更换 Flash 芯片时只改 Fls 驱动NvM 配置和应用代码不动。 动手跑起来最短路径是用 linux 板在主机上编译不需要任何交叉编译工具链克隆仓库并进入目录git clone https://gitcode.com/gh_mirrors/cl/classic-platform cd classic-platform指定 linux 板编译内核部分默认就会构建make BOARDDIRlinux all在根目录的build/下检查生成的目标文件。新手最容易踩的坑BOARDDIR是必须显式给出的参数直接裸跑make会直接报错。如果改打嵌入式板子还要额外加CROSS_COMPILE指定目标工具链前缀。谁在用它能延伸到哪做 UDS 诊断开发的同学可以把这份 Dcm 当活文档读0x22readDataByIdentifier、0x27securityAccess、0x31routineControl都走上面那套状态机DTC 老化和故障记录由 Dem 完成对接诊断仪或网关时配置项可以逐条对着规范核。车载以太网方案评估是另一个典型场景linux 板 lwIP DoIP 在主机上跑通整条诊断链路先验证协议时序和路由配置再往目标硬件移植评估周期从等板子到位变成代码写完就能跑。OEM 侧做供应商多 ECU 软件统一时也可以把它当公共 BSW 基线各家只保留自己boards/下的配置和驱动层上层协议栈与诊断实现完全共用同一份代码。项目本身是 Arctic Core 的公开分支有改进可以直接往仓库里提。下一步先读README.md跑一遍make BOARDDIRlinux all然后打开diagnostic/Dcm/src/看四个状态机文件。【免费下载链接】classic-platformOpen source AUTOSAR classic platform forked from the Arctic Core项目地址: https://gitcode.com/gh_mirrors/cl/classic-platform创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考