主要内容

什么是代码替换?

代码替换技术改变函数和运算符的代码生成器生成的代码来满足应用程序代码的需求。例如,您可以取代生成的代码来满足要求,比如:

  • 优化为一个特定的运行时环境,包括但不限于特定的目标硬件。

  • 与现有的应用程序代码的集成。

  • 符合标准的,如AUTOSAR。

  • 修改代码的行为,如启用或禁用非限定的或内联的支持。金宝app

  • 应用程序或项目特定的代码要求,如:

    • 消除math.h

    • 消除系统头文件。

    • 消除调用memcpymemset

    • 布拉斯特区的使用。

    • 使用一个特定的布拉斯特区。

应用这种技术,配置代码生成器应用代码替换库(CRL)代码生成。默认情况下,代码生成器代码替换库并不适用。你可以选择从MathWorks的库®提供和你通过使用嵌入式程序员创建并注册®产品。可用的库列表取决于:

  • 安装包的支持。金宝app

  • 目标文件系统,语言,语言标准,配置和设备供应商。

  • 你是否有创建和注册库,使用嵌入式编码器产品。

库,包括GNU99扩展仅供使用GCC编译器。如果你使用其中一个库与另一个编译器,生成的代码可能无法编译。

代码替换库

一个代码替换库由一个或多个代码替换表指定特定于应用程序的函数和运算符实现。例如,为一个特定的嵌入式处理器库指定函数和运算符替换优化生成的代码,处理器。

一个代码替换表包含一个或多个代码替换条目,每个条目表示一个潜在的替代函数或运算符。每个条目映射概念上的表示的一个函数或一个操作符实现表示和优先级。

表条目组件 描述
概念上的表示

标识表条目,包含匹配标准代码生成器。包括:

  • 函数名或一个关键。函数名识别大部分功能。对运营商和一些功能,一系列的字符,称为关键标识一个函数或运算符。例如,函数名“因为”和运营商关键“RTW_OP_ADD”

  • 概念上的参数,观察代码生成器命名(“日元”,‘u1’,“u2”…),对应的I / O类型(输出或输入)和数据类型。

  • 其他属性,比如算法,定点饱和,和舍入模式,识别匹配的标准函数或运算符。

实现表示

指定替换代码。包括:

  • 函数名。例如,“cos_dbl”“u8_add_u8_u8”

  • 实现参数,与相应的I / O类型(输出或输入)和数据类型。

  • 参数,提供额外的实现细节,如头文件和源文件的名称和路径构建资源。

优先级

定义条目的优先级相对于其他表中的条目。值的范围可以从0到100,0是最高优先级。如果多个条目有相同的优先级,代码生成器使用的第一场比赛,优先级。

当代码生成器代码替换库中查找匹配,它创建和填充调用站点对象概念与函数或操作符表示。如果匹配存在,代码生成器使用匹配的代码替换条目填充实现表示和使用它来生成代码。

代码生成器的搜索匹配的代码替换库中的表,表的顺序出现在图书馆。如果代码生成器发现多个匹配表内,优先级决定了比赛。代码生成器使用一个高优先级的条目在一个类似的条目以较低的优先级。

代码替代术语

术语 定义
缓存命中 代码替换条目一个函数或运营商指定的代码替换库中定义,代码生成器找到一个匹配。
缓存错过 函数或运算符的概念表示的代码生成器没有找到匹配。
调用站点对象 概念表示的函数或操作符代码生成器使用时遇到一个叫网站功能或操作符。代码生成器使用对象查询的代码替换库概念表示匹配。如果匹配存在,代码生成器代码替换返回一个对象,充分填充概念表示,实现表示,和优先级,并使用该对象生成替换代码。
代码替换库 一个或多个代码替换表指定特定于应用程序的函数和运算符实现。当配置为使用一个代码替换库,代码生成器使用标准库中定义的搜索匹配。如果找到匹配,它生成的代码生成器替换代码中定义的默认情况下和特定于应用程序的代码库。
代码替换表 一个或多个代码替换表条目。提供了一种方法来组织相关或共享条目使用在不同的库。
代码替换条目 代表了一种潜在的替代函数或运算符。地图的概念表示一个函数或运算符表示和实现优先级。
概念上的参数 代表一个输入或输出参数的函数或操作符所取代。概念参数观察命名约定(“日元”,‘u1’,“u2”熟悉,…)和数据类型代码生成器。
概念上的表示

表示匹配标准代码生成器使用资格函数和运算符替代。包括:

  • 函数或运算符名称或关键

  • 概念上的参数型、尺寸和复杂性规范输入和输出

  • 属性,例如一个算法和定点饱和和舍入模式

实现参数 代表一个输入或输出参数C或c++替换功能。实现参数观察C / c++名称和数据类型规范。
实现表示

指定C或c++替换函数原型。包括:

  • 函数名(例如,“cos_dbl”“u8_add_u8_u8”)

  • 实现参数指定类型,类型限定符和复杂函数的输入和输出

  • 参数,提供构建信息,如头文件和源文件名称和路径构建资源和编译和链接标志

关键 标识一个函数或运算符所取代。出现一个函数名或关键的概念表示代码替换条目。的关键RTW_OP_ADD标识加法操作符。
优先级 定义了代码替换条目匹配的优先级相对于其他条目,参数列表相同的名称和概念,在一个代码替换库。优先级的范围可以从0到100,0是最高优先级。默认值是100。如果一个库提供了两种实现函数或运算符,实现与更高的优先级阴影的较低的优先级。

代码替换的局限性

代码替换代码替换验证——可能比你想象的表现不同。例如,你观察的数据类型代码生成器的输入可能不匹配代码生成器使用作为中间数据类型在一个操作。验证代码替换通过检查生成的代码。

代码代替矩阵-代码替换库不支持动态和符号大小的矩阵。金宝app

相关的话题