本文摘抄了《AUTOSAR_SWS_BSWGeneral》中关于功能、接口、软件配置相关内容。着重于对开发者有用的内容。
虽说内容比较枯燥,但作为开发者必须认真阅读并了解这些内容。
11、调出函数
定义调出函数的原型:
如果BSW模块使用调出函数,那么它应该在自己的实现头中定义调出的原型。
包含Callout函数实现的文件可以包含这个头文件来检查Callout的声明和定义是否匹配。
Callout函数原型声明的约定:
用于声明调出函数原型的下列约定应使用:
/* --- 开始分段宏定义: --- */
#define <MIP>_START_SEC_<CN>_CODE
/* --- Function prototype definition: --- */
FUNC(void, <MIP>_<CN>_CODE) <Cn> (void);
/* --- 结束分段宏定义: --- */
#define <MIP>_STOP_SEC_<CN>_CODE
其中<MIP>是调用模块的模块实现前缀,<CN>是Callout名称,该名称应该与Callout名称(包括模块引用)具有相同的拼写,但是用大写字母表示,<CN>是Callout名称,使用传统的驼峰大小写表示法表示API名称。
模块开发人员不知道用于调出函数的内存段。集成器需要独立于模块设计的自由来映射这些函数。
调出函数的内存段和内存类:
每个调出函数都应该映射到它自己的内存段和内存类。然后在集成时将这些内存类映射到实际实现的内存类。
#define COM_START_SEC_SOMEMODULE