配置代码生成模式的入口点函数

什么是入口点函数?

入口点是在转移程序控制的(执行)时发生的代码的位置。主要功能(主要())是入口点到C / C ++程序和应用开始执行时被调用。调用其它功能,例如从主要功能,提供入口点函数的代码。程序控制被转移到被调用的函数。功能代码执行,并在结束时,控制返回到主要或其他调用函数。

当一个模型创建的代码,代码生成器定义了一组入口点函数可以调用执行生成的代码。您可以从外部代码或从一个版本,您修改生成的主要功能调用生成的函数。

代码生成报告的代码接口报告部分列出的入口点函数的代码发生器产生一个模型。欲了解更多信息,请参阅分析生成的代码接口(嵌入式编码)。

分类和生成的入口点函数的类型

的类型的入口点的功能的代码发生器产生用于模型和功能的调用接口取决于模型是否是:

  • 基于速率的或者是出口的函数模型

  • 配置为可重复使用的,多实例代码生成

取决于模型的风格和配置,码发生器产生的一个或多个的这些入口点的功能。

功能分类 功能 描述
初始化/终止 模型_初始化

一个模型初始化代码。在应用程序代码的开始,调用函数一旦。不要使用此功能重设实时模型数据结构(RTM)。

模型_terminate

代码关闭系统。对于基于ERT-模型,您可以通过清除模型配置参数禁止生成这个功能终止函数所需(嵌入式编码)(默认设置)。

执行 模型_步

一种用于在基于速率的模型,输出和更新代码块。如果清除该模型配置参数单路输出/更新功能(默认选择),而不是产生一个模型_步功能,代码发生器产生的功能模型_output模型_Update

模型_函数名 对于导出的函数模型,对子系统的导出函数。
函数名 对于导出的函数模型,对于Simulink的功能块导出的函数。万博1manbetx
模型_重启

如果模型包括复位功能块,生成复位码。要重置的条件或状态,从应用程序调用代码的功能。

参考模型 用于参考模型,输出和更新代码。
isr_num中断数_vec中断向量偏移 对于一个异步中断块,中断服务例程(ISR)的代码。
共享实用工具 函数名 对于共享的效用函数,输出代码。

配置是否入口点函数的可重复使用

默认情况下,顶级车型,代码生成器产生的代码是不可重用或折返。入口点函数的有空隙无效接口。代码通过直接访问全局数据结构驻留在共享存储器与其它代码进行通信。

如果应用程序需要重复使用,多实例入口点函数的代码,你可以配置代码生成调用各功能(实例)使用的唯一数据。在这种情况下,代码折返。

您配置的入口点函数是否可以重复使用同型号配置参数代码接口封装和相关参数。您选择的参数设置取决于多种因素,如配置选择对系统目标文件,编程语言和参数的接口。

对于单实例ç入口点函数的默认配置

默认情况下,GRT-和基于ERT-系统目标文件,代码生成器产生的单实例Ç的入口点函数。生成的代码:

  • 创建不带参数的执行功能(空隙无效)。

  • 分配内存静态(在编译时间)模型的数据结构。

配置单实例入口点函数代码的默认模式配置参数设置如下:

可重复使用的产生,多实例Ç的入口点函数

您可以配置代码生成器产生用C可重复使用的入口点函数为任何一个GRT-或基于ERT-系统目标文件。但是,函数接口,代码生成器在默认情况下不定产生。假设模型配置参数语言设定为C代码接口封装设定为可重复使用的功能中,代码生成器产生的每个系统目标文件情况下这个入口点函数的代码。

系统目标文件 接口
基于GRT
  • 可重复使用,多实例Ç的入口点函数是重入的。

  • 模型根级INPORT块和输出块的包的值到实时模型数据结构。通过该结构,以执行功能的由参考参数。

  • 在运行时动态模型实例的数据分配内存。分配存储器通过调用一个函数,如的malloc

基于ERT
  • 可重复使用,多实例Ç的入口点函数是重入的。

  • 通过每个模型的根级INPORT块和外港块的执行功能作为单独的参数的值。

  • 内存分配为静态模型数据结构。

如果您使用的是基于ERT-系统目标文件和要生成的折返可重复使用的,多实例Ç的入口点函数,可以考虑:

  • 使用动态内存分配来初始化模型数据结构。选择使用动态分配的内存模型初始化(嵌入式编码)。

  • 包装模型根级别INPORT块的值转换成一个结构,包装根级出口框的值到第二结构,并且通过引用传递结构的执行功能作为参数。组通过根级的I / O(嵌入式编码),以结构参考

  • 包装模型根级INPORT块和输出块的值到实时模型数据结构以及使该结构的执行功能作为一个参数作为参考。组通过根级的I / O(嵌入式编码),以模型数据结构的一部分

可重复使用的产生,多实例C ++的入口点函数

C ++的类的接口封装作为类属性和入口点用作类方法的模型数据。该接口可与基于ERT-系统目标文件使用。要使用的界面,集语言C ++并集代码接口封装C ++类。您可以:

  • 预览和自定义的C ++类通过点击界面配置C ++类接口(嵌入式编码)。定制意味着你可以与外部代码集成生成代码并验证编码规范的代码是否符合。

  • 通过指定是否生成块参数结构作为公共的,私人的,或受保护的数据成员配置类继承的可见性。组参数可视性(嵌入式编码),以上市私人的, 要么保护

  • 生成C ++接口,用于模型块参数满足代码的执行速度或可调谐性的要求的代码。该代码可以是noninlined或内联访问方法。组参数访问(嵌入式编码),以方法要么联的方法

  • 生成C ++接口,用于模型根级INPORT并且满足代码的执行速度,数据的可调谐性,或数据包装要求外港模块集的代码。该代码可以是这些类型的接入方式之一。

    对于访问方法类型 外部I / O访问(嵌入式编码)要
    Noninlined 方法
    内联 联的方法
    Noninlined结构为主 基于结构的方法
    内联结构为主 内联结构为基础的方法
  • 通过指定是否生成根级别的I / O结构作为一个公共的,私人的,或受保护的数据成员配置类继承的可见性。组外部I / O的知名度(嵌入式编码),以上市私人的, 要么保护

配置产生的入口点函数声明

根据应用的要求,如集成或符合标准的代码,你可能会在代码生成器是怎样的入口点函数的声明产生需要配置。嵌入式编码®提供了多个配置选项。

的入口点函数的配置放置在内存

如果应用程序需要您配置的入口点函数的放置在内存中,例如,以优化特定的硬件生成的代码,你可以申请一个默认的存储部分的功能,跨模型类别。在代码映射编辑器,地图功能类别被定义为使用特定内存部分的功能自定义模板。看到代码映射编辑器

如何用接口生成的入口点函数

  1. 生成代码为一个模型后,使用查看审查所产生的入口点的功能和,如果适用的话,表示外部输入和输出端口的变量。

  2. #包括陈述到外部代码,包括申报模型的入口点函数生成的头文件。

  3. 添加#包括声明包含生成的文件rtwtypes.h。此文件提供了类型定义,#定义声明和枚举。

  4. 初始化靶特异性的数据结构和硬件,例如ADC或DAC。

  5. 如果适用,对于可重复使用的模型的每个实例初始化数据。

  6. 如果适用的话,写输入数据到表示模型INPORT块生成的变量。

  7. 调用产生的入口点函数或设置使用的rt_OneStep功能。

  8. 如果适用,从代表模型出口框生成的变量读取数据。

欲了解更多信息,请参阅部署生成独立可执行程序目标硬件(嵌入式编码)。

相关话题