什么是基于AUTOSAR的MCAL模块的文件结构?

时间:2017-05-26 07:21:41

标签: c device-driver autosar

什么是.c和.h文件MCAL模块(例如Lin潜水员,CAN驱动程序)应该包含什么?以及每个文件包含哪些内容?如何为它们派生配置?

2 个答案:

答案 0 :(得分:1)

Autosar并未完全指定。当涉及到实现的行为时,标准会非常详细,但在文件方面却没有详细说明。有许多公司提供MCAL,每个供应商都会做出关于代码组织的决定。

实际上是指定了文件名。 CAN驱动程序包含Can.cCan.hCan_Cfg.hCan_PBcfg.c。通过Autosar约定,配置的构建后部分转到Can_PBcfg.c,编译时配置在Can_Cfg.h中。他们的内容主要留给供应商。 Can.c是实现,Can.h是头文件,除了包含ComStack_Types.hCan_GeneralTypes.h之外,不会给出其他规则。

生成的配置也未完全指定。驱动器配置的输入是ECU配置(在一个名为&#34的章节中描述;配置规范"对于每个驱动器或模块),输出主要由供应商决定。供应商可能会添加额外的抽象层,可能具有其他特定于供应商的C文件中的Can.c调用函数,依此类推。您可以确定Can.c将具有Can_Write功能,但不同供应商的实施方式会有所不同。

MCAL供应商通常会提供有关配置模块的其他文档,并且要么拥有自己的Autosar配置工具,要么推荐使用其MCAL可以使用的工具。

答案 1 :(得分:0)

另见standard / AUTOSAR_BSWGeneral.pdf

Can.c - CAN驱动程序的实现..可以在其他C文件中拆分

Can.h - 定义AUTOSAR定义的CAN驱动程序公共接口

Can_Irq.c - CAN的ISR

Can_Cfg.c - PreCompile Config,例如CONST(CanConfigType,CAN_CONFIG_DATA) CanConfig = {...} - AUTOSAR允许跳过此文件并将此配置放在LCfg或PBcfg文件中

Can_Cfg.h - PreCompile配置和编译开关

Can_PBcfg.c - POSTBUILD_CONFIG替换PRECOMPILE配置,例如CONST(CanConfigType,CONFIG_DATA)CanConfigSets = {N,{CfgSet0},{CfgSet1} ..}

Can_PBcfg.h - POSTBUILD_CONFIG类型,结构/定义

Can_Lcfg.c - LINKTIME_CONFIG配置

Can_Lcfg.h - LINKTIME_CONFIG类型/结构/定义

如果CAN Driver会为其他模块提供回调,包括: Can_Cbk.h