什么是代码替换自定义?
通过开发自定义代码替换库,自定义代码生成器如何以及何时替换其为函数、运算符和模块默认生成的 C/C++ 代码。您可以使用代码替换工具以交互方式或以编程方式开发库。
开发适合特定应用需求的库
将标识符添加到代码生成器在代码替换期间考虑的保留关键字列表中
自定义代码生成器的函数匹配和替换流程
有关替换某些 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
了解相关限制。