Function Autosar函数声明
我在一个Autosar项目中使用C开发SWC(软件组件),我遇到了一个新的函数声明,我不理解如下:Function Autosar函数声明,function,declaration,autosar,Function,Declaration,Autosar,我在一个Autosar项目中使用C开发SWC(软件组件),我遇到了一个新的函数声明,我不理解如下: FUNC(void, RTE_SWC_CODE) SWC_Task(uint8 Argument) { //Code goes here } 我在网上搜索了这类声明,但没有找到任何正确的解释 我不明白的是FUNC(Void,RTE\u SWC\u code) Void是否指退货类型 而RTE_SWC_code指的是功能的什么 RTE_SWC_code在另一个RTE_文件.h中定义如下 #
FUNC(void, RTE_SWC_CODE) SWC_Task(uint8 Argument)
{
//Code goes here
}
我在网上搜索了这类声明,但没有找到任何正确的解释
我不明白的是FUNC(Void,RTE\u SWC\u code)
Void
是否指退货类型
而RTE_SWC_code
指的是功能的什么
RTE_SWC_code
在另一个RTE_文件.h
中定义如下
#define RTE_SWC_CODE
void RTE_SWC_CODE SWC_Task(uint8 Argument) //After preprocssing
在AUTOSAR中,有一个与引用该规范相关的规范。
FUNC
是在Compiler.h头文件中定义的宏。宏的定义如下所示
#define FUNC(type, memclass) type memclass
rettype return type of the function
memclass classification of the function itself
你的情况是这样的
#define RTE_SWC_CODE
void RTE_SWC_CODE SWC_Task(uint8 Argument) //After preprocssing
也许您应该查看一下AUTOSAR_SWS_可编译文档和AUTOSAR_SWS_内存映射。这一切都是为了从不同的编译器和处理器/控制器架构中抽象出来,而不是用所有不同的架构/编译器特定的pragma或属性@far/@near、inline vs _inlinevs inline、@interrupt vs _interrupt或_at()污染代码,大量可用的编译器引入了它。
RTE\U SWC\U代码
也将被替换,因此如果未定义它,您将从中获得void SWC\U任务(uint8参数)
。