主要内容

什么是代码替换定制?

通过开发自定义代码替换库,自定义代码生成器替换它为函数和操作符默认生成的C/ c++代码的方式和时间。控件以交互的方式开发库代码替换工具或通过编程的方式。

  • 开发适合特定应用程序需求的库

  • 将标识符添加到代码生成器在代码替换期间考虑的保留关键字列表中

  • 为函数定制代码生成器的匹配和替换过程

首先,快速入门代码替换库开发- Simulink®金宝app

代码替换匹配和替换过程

当代码生成器遇到函数或操作符的调用站点时,它:

  1. 使用函数或操作符名称或键和概念参数创建并部分填充代码替换条目对象。

  2. 使用条目对象查询已配置的代码替换库以获得概念表示匹配。代码生成器按照表在库中出现的顺序在代码替换库中的表中搜索匹配项。当搜索匹配时,代码生成器会考虑:

    • 概念名称或键

    • 参数,包括数量、类型、类型限定符和复杂性

    • 算法(计算方法)

    • 定点饱和和舍入模式

    • 优先级

  3. 当存在匹配时,代码生成器返回一个代码替换对象,该对象完全填充了概念表示、实现表示和优先级。如果代码生成器在一个表中发现多个匹配项,则条目优先级决定匹配项。优先级的取值范围是0 ~ 100。最高优先级为0。代码生成器使用高优先级的条目而不是低优先级的类似条目。

  4. 在代码替换对象中使用C或c++替换函数原型来生成代码。

代码替换自定义限制

  • 代码替换验证——代码替换的行为可能与您预期的不同。例如,您在代码生成器输入中观察到的数据类型可能与代码生成器在操作期间作为中间数据类型使用的数据类型不匹配。通过检查生成的代码来验证代码替换。看到验证代码替换库

  • 矩阵的代码替换——代码替换库不支持替换具有可变大小输入的函数。金宝app

  • 文件路径中的令牌——仅通过使用编程接口为代码替换项指定构建信息时,可以在文件路径中包含令牌。代码替换工具中没有包含令牌的功能。中的指定生成信息定义代码替换库优化

  • 加减运算替换-参见加减运算符代码替换有关限制。

  • 数据一致性

    • 不支持金宝app

      • 与内置存储类关联的参数DataScope设置为出口或者导入的内置存储类GetSet

      • Software-in-the-loop(银)

      • Processor-in-the-loop(公益诉讼)

      • 模型参考参数

      • 导出Stateflow中的函数®图表

      • 替换用C函数原型控件或c++类I/O参数步进方法生成并使用根级I/O变量的函数

      • 替换了使用AUTOSAR系统目标文件生成并使用根级I/O或AUTOSAR可互运行访问函数的函数

    • 的根级I/O变量的数据对齐指令ert_main.cert_main.cpp它生成的文件:

      • 编译器支持全局变量金宝app对齐

      • 生成一个示例主程序(选择配置参数>生成一个示例主程序

      • 为模型生成一个可重用的函数接口配置参数>代码生成>接口>代码接口打包可重用的功能

      • 函数使用根级I/O变量作为单独的参数传入配置参数>代码生成>接口>将根级I/O传递为个人观点

      • 替换的函数使用根级I/O变量

      • 被替换的功能会产生对齐要求

    • 如果丢弃生成的示例主程序,请正确对齐使用的根级I/O变量。

    • 在这种情况下,如果选择不生成示例主程序,则代码生成器不会替换函数。

    • 如果替换对共享实用程序接口参数施加对齐要求,则代码生成器不支持数据对齐。在这些条件下,不会发生替换。如果注册的数据对齐类型规范支持局部变量的对齐,并且替换只涉及局部变量,则允许替换。金宝app

    • 金宝app仿真软件。公共汽车

      • 如果用户注册的对齐规范不支持结构字段对齐,则对齐金宝app金宝app仿真软件。公共汽车对象不支持,除非金宝app金宝app仿真软件。公共汽车是进口的。

      • 当对准金宝app仿真软件。公共汽车数据对象中,总线对象中的元素对齐在同一边界上。边界是每个总线元素的对齐要求的最低公倍数。

    • 当您为模型引用层次结构中出现的函数指定对齐方式,并且层次结构中的多个模型操作相同的函数数据时,最底层的模型指示了层次结构其余部分的对齐方式。如果由于层次结构中较低的模型设置了对齐,而不能满足层次结构中较高模型中的函数的对齐需求,则不会发生较高模型中的替换。在某些情况下,会生成错误消息。要解决此问题,如果共享数据由总线或信号对象表示,则通过设置的对齐属性手动设置共享数据上的对齐属性金宝app仿真软件。公共汽车金宝app仿真软件。信号对象。

    • 你有责任尊重对齐创建的存储类的属性设置。

    看到代码替换的数据对齐

  • coder.replace函数-参见coder.replace有关限制。

相关的话题