mcpField
A
automotive-embedded-skills

automotive-embedded-skills

github.com/washabii14开发14165 次安装35 周前更新
代码仓库

关于 automotive-embedded-skills

automotive-embedded-skills 为汽车嵌入式 C、C++ 和 CAPL 开发提供按安全影响与合规要求组织的编码指南,面向 ECU 开发、测试和审查人员。内容涵盖从内存管理、通信与实时系统到安全、测试和构建的实践。

主要功能

  1. 01180 多条规则,分属 23 类
  2. 02MISRA、AUTOSAR 与 ISO 标准指南
  3. 03内存安全与实时约束
  4. 04汽车通信协议与诊断实践
  5. 05CAPL 仿真、测试与故障注入
  6. 06构建、静态分析与 CI/CD

适用场景

  1. 01编写或审查汽车 ECU 嵌入式代码
  2. 02检查 MISRA 或 AUTOSAR 合规性
  3. 03实现 CAN、LIN 或 Ethernet 通信
  4. 04编写 CAPL 仿真和测试脚本

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/washabii14/agent-skills --skill automotive-embedded-skills

安装后在 Claude Code 中输入/automotive-embedded-skills确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

AGENTS.md
README.md
rules/
_template.md
analysis-coverity.md
analysis-cppcheck.md
analysis-ldra.md
analysis-parasoft.md
analysis-pclint-config.md
analysis-polyspace.md
arch-callback-pattern.md
arch-config-separation.md
arch-hal-abstraction.md
arch-layered-architecture.md
arch-module-interface.md
arch-state-machine.md
autosar-adaptive-ara-com.md
autosar-adaptive-ara-core.md
autosar-adaptive-ara-diag.md
autosar-adaptive-ara-exec.md
autosar-adaptive-ara-log.md
autosar-adaptive-ara-per.md
autosar-adaptive-ara-phm.md
autosar-braces-init.md
autosar-classic-bswm.md
autosar-classic-canif-cantp.md
autosar-classic-com.md
autosar-classic-dcm-dem.md
autosar-classic-ecum.md
autosar-classic-nvm.md
autosar-classic-os.md

详细介绍

汽车嵌入式 C/C++/CAPL 最佳实践

面向汽车嵌入式软件开发的 C、C++ 和 CAPL 综合编码指南。包含 23 个类别中的 180 多条规则,并根据安全影响和行业合规要求(MISRA C:2012、MISRA C++:2023、AUTOSAR C++14 Classic 和 Adaptive、ISO 26262、ISO 21434)确定优先级。涵盖完整的汽车通信栈(CAN/LIN/Ethernet/IP/TSN)、网络安全、诊断、CAPL 仿真/测试/故障注入、AUTOSAR BSW 模块、启动/NVM/电源管理、编译器工具链、静态分析工具以及 CI/CD 集成。

适用场景

在以下情况下,请参考这些指南:

  • 为汽车 ECU 编写新的嵌入式 C/C++ 模块
  • 实现或审查 CAN/LIN/Ethernet 通信栈
  • 编写用于 CANoe/CANalyzer 仿真和测试的 CAPL 脚本
  • 重构代码以符合 MISRA C/C++ 或 AUTOSAR C++14
  • 设计安全关键软件(符合 ISO 26262 的 ASIL A-D)
  • 实现 RTOS 任务管理和任务间通信
  • 审查代码的内存安全性、时序和确定性
  • 使用诊断协议(UDS、OBD-II、DoIP)
  • 实现 Automotive Ethernet(TCP、UDP、SOME/IP、DoIP、VLAN)
  • 满足网络安全要求(ISO 21434、安全启动、TLS)
  • 集成标定/诊断工具(A2L、ODX、XCP)
  • 针对资源受限的微控制器(RAM、Flash、CPU)进行优化

按优先级划分的规则类别

优先级类别影响前缀
1内存安全与管理严重memory-
2MISRA C/C++ 合规严重misra-
3AUTOSAR C++14 指南(Classic 和 Adaptive)严重autosar-
4安全与功能安全(ISO 26262)高safety-
5实时性与时序约束高realtime-
6通信协议(CAN/LIN/Ethernet/IP/UDS)高comm-
7并发与 RTOS 模式中高rtos-
8CAPL 脚本 — CANoe中高capl-canoe-
9CAPL 脚本 — vTESTstudio中高capl-vtest-
10代码组织与架构中arch-
11性能优化中perf-
12构建、编译与静态分析中build-
13安全与网络安全(ISO 21434)高security-
14测试与验证中test-
15工具集成(A2L/ODX/FIBEX)中integration-

快速参考

1. 内存安全与管理(严重)
  • memory-stack-over-heap - 在嵌入式场景中优先使用栈分配,而非堆分配
  • memory-static-allocation - 使用静态分配,确保内存使用具有确定性
  • memory-buffer-bounds - 访问缓冲区前始终验证边界
  • memory-pool-pattern - 使用内存池模式实现类似动态分配的功能
  • memory-no-malloc-in-rt - 实时关键路径中绝不使用 malloc/free
  • memory-raii-cpp - 在嵌入式 C++ 代码中使用 RAII 管理资源
  • memory-volatile-correctness - 正确使用 volatile 处理硬件寄存器和共享数据
  • memory-alignment - 确保数据结构与目标架构正确对齐
  • memory-zero-init - 始终初始化变量,尤其是在安全关键代码中
2. MISRA C/C++ 合规(严重)
  • misra-no-implicit-conversions - 避免隐式类型转换
  • misra-single-exit-point - 关键函数优先采用单一退出点
  • misra-no-dynamic-memory - 避免动态内存分配(规则 21.3)
  • misra-no-recursion - 在嵌入式场景中避免递归(规则 17.2)
  • misra-switch-default - switch 语句中始终包含 default 分支
  • misra-no-goto - 避免使用 goto;C 语言中的错误清理模式除外
  • misra-boolean-expressions - 使用明确的布尔比较
  • misra-pointer-arithmetic - 将指针运算限制为数组索引
  • misra-side-effects - 避免在条件表达式中产生副作用
3. AUTOSAR C++14 指南(关键)
  • autosar-smart-pointers - 使用智能指针代替原始指针来管理所有权
  • autosar-no-exceptions-rt - 在实时上下文中避免使用异常,改用 Result 类型
  • autosar-const-correctness - 在各接口中贯彻 const 正确性
  • autosar-override-final - 始终为虚函数重写使用 override/final
  • autosar-enum-class - 使用 enum class 代替普通 enum
  • autosar-no-unions - 避免使用 union,必要时使用 std::variant
  • autosar-braces-init - 优先使用花括号初始化,以防止窄化转换
  • autosar-nodiscard - 为返回值重要的函数使用 [[nodiscard]]
4. 安全与功能安全 - ISO 26262(高)
  • safety-defensive-programming - 在模块边界采用防御式编程
  • safety-error-detection - 实现错误检测和合理性检查
  • safety-redundant-checks - 在关键控制路径中使用冗余检查
  • safety-watchdog-pattern - 实现看门狗监控模式
  • safety-state-machine-integrity - 防止状态机转换遭到破坏
  • safety-crc-validation - 使用 CRC 验证关键数据的完整性
  • safety-safe-state - 始终定义安全状态,并在发生故障时进入该状态
  • safety-asil-decomposition - 正确遵循 ASIL 分解模式
5. 实时与时序约束(高)
  • realtime-deterministic-execution - 确保周期任务的执行时间具有确定性
  • realtime-wcet-awareness - 设计时考虑 WCET(最坏执行时间)
  • realtime-no-blocking-isr - 切勿在中断服务程序中阻塞
  • realtime-priority-inversion - 通过适当的锁定机制防止优先级反转
  • realtime-cyclic-scheduling - 正确遵循周期调度模式
  • realtime-interrupt-latency - 尽量缩短中断延迟和 ISR 执行时间
  • realtime-deadline-monitoring - 为关键任务实现截止时间监控
6. 通信协议(高)

CAN / LIN 总线:

  • comm-can-message-layout - 遵循正确的 CAN/CAN FD 消息布局和 DBC 约定
  • comm-can-error-handling - 处理 CAN 总线关闭恢复和错误帧
  • comm-can-fd-handling - 处理 CAN FD 扩展数据长度和位速率切换
  • comm-lin-schedule-table - 实现 LIN 调度表和响应处理
  • comm-signal-timeout - 使用默认值实现信号超时监控
  • comm-network-management - 正确遵循 NM(网络管理)状态机

汽车以太网 / IP 协议栈:

  • comm-tcp-socket-lifecycle - 管理 TCP 套接字生命周期(连接、保活、平滑关闭)
  • comm-udp-datagram-handling - 处理用于服务发现和流传输的 UDP 数据报
  • comm-doip-implementation - 实现 IP 诊断(ISO 13400)的激活和路由
  • comm-arp-table-management - 管理 ARP 表和静态 ARP 条目,以支持确定性网络
  • comm-icmp-handling - 处理 ICMP,以进行网络诊断和可达性检测
  • comm-vlan-qos-priority - 配置 VLAN 标记和 QoS 优先级映射(IEEE 802.1Q)
  • comm-dhcp-autoip - 实现 IP 地址分配(DHCP 客户端、AutoIP 回退)
  • comm-someip-serialization - 为面向服务的通信使用正确的 SOME/IP 序列化
  • comm-someip-sd - 实现 SOME/IP 服务发现(提供、查找、订阅)

诊断与路由:

  • comm-uds-service-handler - 实现 UDS 诊断服务并正确处理 NRC
  • comm-gateway-routing - 在网关 ECU 中实现正确的消息路由
7. 并发与 RTOS 模式(中高)
  • rtos-task-design - 以单一职责设计任务,并设置适当的优先级
  • rtos-critical-section - 尽量缩短临界区的持续时间
  • rtos-mutex-pattern - 正确使用互斥锁,避免嵌套加锁
  • rtos-message-queue - 任务间通信优先使用消息队列,而非共享内存
  • rtos-no-priority-inversion - 使用优先级继承或优先级上限协议
  • rtos-isr-to-task - 通过标志或队列将 ISR 处理延后到任务上下文
  • rtos-stack-sizing - 正确设置任务栈大小,并留出安全余量
8. CAPL 脚本 — CANoe(中高)
  • capl-canoe-message-handler - 设计结构清晰、性能良好的消息处理程序
  • capl-canoe-timer-pattern - 正确使用定时器模式实现周期性和单次操作
  • capl-canoe-test-structure - 通过适当的设置、清理和验证来组织测试用例
  • capl-canoe-signal-access - 通过数据库符号访问信号,而非直接操作原始字节
  • capl-canoe-error-frame-handling - 在仿真中处理错误帧和总线关闭情况
  • capl-canoe-environment-variables - 正确使用环境变量与面板交互
  • capl-canoe-diagnostic-testing - 实现诊断请求/响应测试模式
  • capl-canoe-node-simulation - 使用适当的状态机设计节点仿真
  • capl-canoe-multi-channel - 多通道总线仿真(CAN+CAN、CAN+LIN、CAN+ETH)
  • capl-canoe-rbs-cyclic - 通过计数器/CRC 生成实现周期性 Rest Bus 仿真
  • capl-canoe-rbs-reactive - 使用交互层和依赖状态的响应实现响应式 RBS
  • capl-canoe-gateway-routing - 通过信号/PDU/跨协议路由实现网关仿真
8b. CAPL — 共享模式(中高)
  • capl-signal-manipulation - 可复用的信号操作库(斜坡、正弦、噪声、阶跃、序列)
8c. CAPL — 故障注入(高)
  • capl-fault-can - CAN/CAN FD 故障注入(错误帧、总线关闭、信号卡滞、时序)
  • capl-fault-lin - LIN 故障注入(校验和、无响应、报头、时序)
  • capl-fault-eth - 以太网故障注入(链路断开、丢包、延迟、数据损坏)
8d. CAPL — 外部集成(中)
  • capl-ext-dll-integration - CAPL DLL API、数据交换、线程安全、32/64 位
  • capl-ext-com-python - 通过 Python 实现 CANoe COM 自动化
  • capl-ext-com-csharp - 通过 C# 实现 CANoe COM 自动化
  • capl-ext-ci-cd - CI/CD 集成(Jenkins、GitLab CI、无头执行)
9. 代码组织与架构(中)
  • arch-hal-abstraction - 使用硬件抽象层提高可移植性
  • arch-module-interface - 通过信息隐藏设计简洁的模块接口
  • arch-state-machine - 使用表驱动或状态模式实现状态机
  • arch-callback-pattern - 使用回调模式解耦各层
  • arch-config-separation - 将配置与逻辑分离(校准参数)
  • arch-layered-architecture - 遵循分层架构(MCAL、ECU-AL、BSW、SWC)
10. 性能优化(中)
  • perf-loop-optimization - 针对嵌入式目标优化循环结构
  • perf-lookup-table - 使用查找表代替运行时计算
  • perf-bitwise-operations - 使用位运算操作标志和寄存器
  • perf-cache-friendly - 组织数据以提高 CPU 缓存效率
  • perf-inline-critical - 内联小型关键函数
  • perf-fixed-point - 尽可能使用定点运算代替浮点运算
  • perf-dma-usage - 使用 DMA 进行大批量数据传输
11. 构建、编译与静态分析(中)
  • build-warnings-as-errors - 将所有编译器警告视为错误
  • build-static-analysis - 集成静态分析(PC-lint、Polyspace、Coverity)
  • build-compiler-flags - 使用适当的编译器标志,确保安全性并进行优化
  • build-link-time-optimization - 使用 LTO 进行跨模块优化
  • build-reproducible-builds - 确保构建可复现,以便追溯
12. 测试与验证(中)
  • test-unit-test-pattern - 为嵌入式 C/C++ 组织单元测试(Unity、Google Test)
  • test-mock-hardware - 模拟硬件依赖项,以便进行测试
  • test-boundary-values - 系统地测试边界值和边缘情况
  • test-coverage-targets - 达到各 ASIL 等级对应的代码覆盖率目标
  • test-integration-testing - 设计模块间通信的集成测试
  • test-hil-sil-pattern - 组织 HIL/SIL 测试模式以进行验证
13. 安全与网络安全 — ISO 21434(高)
  • security-secure-boot - 实施安全启动链验证
  • security-secure-communication - 在车载以太网通信中使用 TLS/DTLS
  • security-key-management - 妥善存储和轮换加密密钥
  • security-secure-diagnostics - 实施安全的 UDS 身份验证(0x29 服务)
  • security-input-sanitization - 清理所有外部输入(CAN、以太网、诊断)
  • security-secure-update - 实施带签名验证的安全 OTA/重新刷写
  • security-access-control - 在安全域之间强制实施访问控制
  • security-crypto-usage - 正确使用加密原语(AES、HMAC、CMAC)
14. MISRA 分组主题(关键)
  • misra-type-system - 基本类型模型、隐式转换、类型强制转换(规则 10-11)
  • misra-control-flow - Switch、goto、不可达代码、单一出口(规则 15-16)
  • misra-pointer-safety - 指针算术、空指针检查、转换(规则 18、11)
  • misra-declarations - 变量作用域、链接、存储类(规则 8)
  • misra-expressions - 副作用、优先级、布尔值、sizeof(规则 12-14)
  • misra-functions - 原型、参数、返回值、禁止递归(规则 17)
  • misra-preprocessor - 宏安全、包含保护、条件编译(规则 20)
  • misra-standard-library - 禁用的函数、受限的头文件(规则 21-22)
  • misra-initialization - 变量/数组/结构体初始化(规则 9)
  • misra-memory-model - Volatile、原子访问、内存屏障(规则 19)
  • misra-concurrency - 线程安全、共享数据访问(修订案 4)
  • misra-deviation-process - 偏差文档、审批、常见模式
15. AUTOSAR Classic BSW 模块(高)
  • autosar-classic-ecum - EcuM 启动/关闭、休眠/唤醒
  • autosar-classic-bswm - BswM 模式仲裁、操作列表
  • autosar-classic-com - COM 信号打包、传输模式
  • autosar-classic-pdu-router - PDU Router 路由路径、网关
  • autosar-classic-dcm-dem - Dcm/Dem 诊断、DTC 管理
  • autosar-classic-nvm - NvM 块配置、CRC、读写
  • autosar-classic-os - AUTOSAR OS 任务、ISR、资源、报警
  • autosar-classic-canif-cantp - CanIf/CanTp 回调、流量控制
16. AUTOSAR Adaptive ara:: API(高)
  • autosar-adaptive-ara-com - ara::com 代理/骨架、服务发现
  • autosar-adaptive-ara-core - ara::core Result<T,E>、ErrorCode、Future
  • autosar-adaptive-ara-exec - ara::exec 进程生命周期、功能组
  • autosar-adaptive-ara-diag - ara::diag 诊断服务
  • autosar-adaptive-ara-log - ara::log 日志记录模式
  • autosar-adaptive-ara-phm - ara::phm 健康管理、监控
  • autosar-adaptive-ara-per - ara::per 持久化、键值存储
17. ECU 启动序列(高)
  • boot-baremetal-startup - 裸机启动:启动 → C 运行时 → main
  • boot-autosar-classic-startup - Classic AUTOSAR EcuM/BswM 启动
  • boot-autosar-adaptive-startup - Adaptive Execution Manager 启动
  • boot-bootloader-reprogramming - UDS 刷写下载序列
  • boot-secure-boot-chain - 通过 HSM 验证的安全启动
18. NVM 管理(高)
  • nvm-autosar-block-config - AUTOSAR NvM 块、CRC、冗余
  • nvm-fee-ea-abstraction - Fee/Ea Flash EEPROM 仿真
  • nvm-baremetal-flash - 裸机 Flash/EEPROM 模式
  • nvm-wear-leveling - 面向汽车使用寿命的磨损均衡策略
19. 电源管理(中)
  • power-ecum-sleep-wakeup - EcuM 睡眠/唤醒状态机
  • power-partial-networking - 部分联网、收发器选择性唤醒
  • power-bswm-shutdown - BswM 有序关机操作列表
  • power-clock-peripheral - 时钟门控和外设断电
  • power-low-power-modes - MCU 低功耗模式(SLEEP、STANDBY、STOP)
20. 汽车以太网深入解析(高)
  • eth-tsn-time-sync - TSN 时间同步(IEEE 802.1AS / gPTP)
  • eth-tsn-traffic-shaping - TSN 流量整形(IEEE 802.1Qbv)
  • eth-tsn-stream-filtering - TSN 流过滤(IEEE 802.1Qci)
  • eth-switch-configuration - 汽车以太网交换机配置
  • eth-avb-streaming - AVB 音频/视频流
21. 编译器与静态分析(高)
  • build-gcc-warnings - 面向汽车应用的 GCC 警告标志
  • build-clang-analysis - Clang-Tidy 和 Clang Static Analyzer
  • build-greenhills-safety - GreenHills 安全认证编译器
  • analysis-pclint-config - PC-lint MISRA 配置
  • analysis-polyspace - Polyspace Bug Finder / Code Prover
  • analysis-coverity - Coverity 嵌入式检查器
  • analysis-cppcheck - 带有 MISRA 插件的 cppcheck
  • analysis-parasoft - Parasoft C/C++test
  • analysis-ldra - LDRA 可追溯性与覆盖率
22. vTESTstudio CAPL(中高)
  • capl-vtest-test-unit - 测试单元/组/夹具结构
  • capl-vtest-data-driven - 使用参数进行数据驱动测试
  • capl-vtest-xml-module - XML 测试模块集成
  • capl-vtest-verdict-reporting - 判定与报告模式
  • capl-vtest-stimulus-response - 激励/响应时序验证
23. 工具集成(中)
  • integration-a2l-calibration - 生成和维护 A2L/ASAP2 标定描述
  • integration-odx-diagnostic - 正确构建 ODX/PDX 诊断描述
  • integration-fibex-network - 维护 FIBEX 网络描述文件
  • integration-dbc-arxml-sync - 保持 DBC/ARXML 与代码中的信号定义同步
  • integration-xcp-calibration - 实现 XCP(通用测量与标定协议)
  • integration-autosar-arxml - 正确生成和解析 AUTOSAR ARXML 配置

使用方法

阅读各规则文件,了解详细说明和代码示例:

rules/memory-stack-over-heap.md
rules/misra-no-recursion.md
rules/capl-message-handler.md

每个规则文件包含:

  • 简要说明该规则在汽车嵌入式环境中的重要性
  • 错误代码示例及说明
  • 正确代码示例及说明
  • 相关标准参考(MISRA、AUTOSAR、ISO 26262)
  • 关于安全性/性能的补充背景和影响

完整编译文档

如需查看包含所有扩展规则的完整指南:AGENTS.md

评论

支持 Markdown