什么是.c和.h文件MCAL模块(例如Lin潜水员,CAN驱动程序)应该包含什么?以及每个文件包含哪些内容?如何为它们派生配置?
答案 0 :(得分:1)
Autosar并未完全指定。当涉及到实现的行为时,标准会非常详细,但在文件方面却没有详细说明。有许多公司提供MCAL,每个供应商都会做出关于代码组织的决定。
实际上是指定了文件名。 CAN驱动程序包含Can.c
,Can.h
,Can_Cfg.h
和Can_PBcfg.c
。通过Autosar约定,配置的构建后部分转到Can_PBcfg.c
,编译时配置在Can_Cfg.h
中。他们的内容主要留给供应商。 Can.c
是实现,Can.h
是头文件,除了包含ComStack_Types.h
和Can_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