自动 AUTOSAR 数据类型生成
当您为 AUTOSAR 组件模型生成符合 AUTOSAR 标准的 C 代码时,Embedded Coder® 会在代码中生成 AUTOSAR 平台数据类型。AUTOSAR 类型生成允许您为顶层模型、引用模型和共享实用工具生成 AUTOSAR 平台数据类型,而无需配置 Simulink® 数据类型替换。
AUTOSAR 标准定义 AUTOSAR 软件组件使用的平台数据类型。在 Simulink 中,您可以对元素(如数据元素、操作参量、标定参数、测量变量和可运行实体间变量)中使用的 AUTOSAR 数据类型进行建模。要对 AUTOSAR 数据类型进行建模,请使用对应的 Simulink 内置数据类型。有关详细信息,请参阅Model AUTOSAR Data Types。
当您编译 AUTOSAR 模型时,C 代码生成会将 Simulink 数据类型替换为对应的 AUTOSAR 平台数据类型。下表显示对应的 Simulink 和 AUTOSAR 数据类型:
| Simulink 数据类型 | AUTOSAR 4.x 平台类型 |
|---|---|
boolean | boolean |
single | float32 |
double | float64 |
int8 | sint8 |
int16 | sint16 |
int32 | sint32 |
int64 | sint64 |
uint8 | uint8 |
uint16 | uint16 |
uint32 | uint32 |
uint64 | uint64 |
您可以在 AUTOSAR 字典的 XML 选项中配置 AUTOSAR 平台类型打包和命名行为的各个方面。有关详细信息,请参阅AUTOSAR Platform Types。
例如,假设您创建一个包含 Gain 和 Delay 模块的简单 AUTOSAR 模型,并将 Gain 模块参数输出数据类型设置为 int8。当您生成代码时,符合 AUTOSAR 标准的 C 代码会引用 AUTOSAR 数据类型 sint8,而不是 Simulink 数据类型 int8。

void Runnable_Step(void)
{
sint8 rtb_Delay;
...
simple_DW.Delay_DSTATE[1] = (sint8)-rtb_Delay;
}