什么是代码替换自定义?
R2026b通过开发自定义代码替换库,来自定义代码生成器如何以及何时替换默认情况下为函数、运算符和模块生成的 C/C++ 代码。您可以使用代码替换工具以交互方式开发库或以编程方式开发库。
针对特定的应用程序要求开发量身定制的库
向代码生成器在代码替换期间考虑的保留关键字列表中添加标识符
自定义代码生成器对函数的匹配和替换过程
要快速入门,请参阅快速向导代码替换库开发 - Simulink。
有关替换来自某些 Simulink® 模块的代码的信息,请参阅Block Replacement for Code Optimization。
代码替换匹配和替换过程
当代码生成器遇到函数或运算符的调用点时,它会:
创建并部分填充代码替换条目对象,其中包含函数或运算符名称或键以及概念参量。
使用条目对象查询已配置的代码替换库以进行概念表示匹配。代码生成器按照各表在库中出现的顺序在代码替换库中搜索匹配项。搜索匹配时,代码生成器会考虑:
概念名称或键
参量,包括数量、类型、类型限定符和复/实性
算法(计算方法)
定点饱和与舍入模式
优先级
当存在匹配项时,代码生成器将返回一个代码替换对象,该对象由概念表示、实现表示和优先级完全填充。如果代码生成器在一个表中找到多个匹配项,将根据条目优先级确定匹配项。优先级范围可以从 0 到 100。最高优先级是 0。代码生成器使用优先级较高的条目,而不是优先级较低的类似条目。
使用代码替换对象中的 C 或 C++ 替换函数原型生成代码。
代码替换自定义限制
代码替换验证 - 代码替换的行为可能与您预期的不同。例如,您在代码生成器输入中观测到的数据类型可能与代码生成器在运算期间用作中间数据类型的数据类型不匹配。通过检查生成的代码来验证代码替换。请参阅Verify Code Replacement Library。
矩阵的代码替换 - 代码替换库不支持替换具有可变大小输入的函数。
文件路径中的标记 - 仅当在通过编程接口为代码替换条目指定编译信息时,您才可以在文件路径中包含标记。从代码替换工具中无法使用包含标记的功能。请参阅Define Code Replacement Library Optimizations中与指定编译相关的信息。
加法和减法运算替换 - 请参阅Addition and Subtraction Algorithm Types for Code Replacement了解相关限制。
数据对齐 - 请参阅Optimize Performance of Memory Access by Using Data Alignment和Data Alignment for Code Replacement了解相关限制。
coder.replace函数 - 请参阅coder.replace了解相关限制。