Function Autosar函数声明

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中定义如下 #

我在一个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
中定义如下

#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参数)