复杂驱动(CDD)
AUTOSAR CP的复杂驱动(CDD)是为了实现复杂的传感器评估和执行器控制而设计的。它通过直接访问微控制器来实现,使用特定的中断和/或复杂的微控制器外设、外部设备通信收发器、ASIC等,以满足特殊的功能和时序要求。此外,CDD还可以用于实现增强的服务/协议或封装非AUTOSAR系统的传统功能。CDD的实现可能与应用、微控制器和ECU有关。最后,CDD可以作为引入现有或新概念到AUTOSAR软件架构中的迁移机制。
在将CDD集成到AUTOSAR架构中时,设计人员应考虑以下几点:
提供用户手册,以便于集成和向客户提供信息。
描述CDD的功能操作,包括初始化、正常运行、关闭、故障操作等。
描述与其他BSW模块、SchM和Rte的关系和需求,例如从NvM获取的内存块、配置的临界区等。
描述接口,包括服务的名称、描述、可重入性、参数名称、类型、范围、返回值名称、类型、范围等。
描述非功能需求,如时序和行为要求、资源使用情况、与其他BSW模块或SW-C的行为等。
描述Dem错误、可选的Det错误、调试变量等。
描述配置参数的名称、类型、范围、值。
描述内存映射需求,如Flash、RAM的使用情况。
描述使用限制和未解决的问题。
描述与其他模块的集成约束和要求。
提供示例。
CDD的实现需要遵守AUTOSAR的一些约束,包括:
遵守输入规范。
使用SchM或操作系统机制来保护关键资源。
可通过EcuM和BswM模块管理CDD的模式。
可使用内存映射机制来处理内存段。
可使用Det或Dem模块报告错误。
关于CDD的文件结构,建议至少提供以下文件:
CDD_.c:CDD模块的代码文件。
CDD__Irq.c:中断函数的文件。
CDD__Callout.c:回调函数的文件。
CDD__Lcfg.c:链接时从配置生成的C对象的文件。
CDD__PBcfg.c:构建时从配置生成的C对象的文件。