Simulink代码生成提高教程

【Simulink代码生成提高教程】前言
前两期文章《代码生成应用教程》、《代码生成基础体验教程》中思想介绍了如何使用生成嵌入式代码 , 以及生成的代码如何移植到嵌入式开发环境 。本期文章内容将继续深入 , 介绍下如何在中直接对嵌入式芯片配置 , 做到无需手工编写底层的嵌入式程序 。市场上的这类产品一般由快速原型的厂家(如:华海科技、海博瑞德等)提供 , 需要安装厂家自己的目标系统 , 本期就来聊聊如何自制一个目标系统 。
什么是自定义目标系统
在前面介绍代码生成的时候 , 第一步就是选择目标【 】 , 已经自带了不少目标系统 , 例如之前用的ert.tlc 。

Simulink代码生成提高教程

文章插图
如果你安装了、或其他快速原型产品 , 这里就会多出来一些目标系统可以选择 。自定义目标系统是为了让生成的代码能根据用户的需要 , 与底层驱动做集成
目标编译流程
制作自定义目标系统前 , 需要了解目标编译的流程 , 该部分内容来自内部帮助文件《 Coder》 。之前的内容中介绍了如何将模型生成C代码 , 下面思想就来围观一下 , 当我们按下【编译】按钮后究竟做了哪些事 。
Simulink代码生成提高教程

文章插图

Simulink代码生成提高教程

文章插图
上面是一个rtw文件 , 该文件会在编译过程中出现在代码生成的文件夹里 。默认情况下这个文件在完成代码生成的时候会自行了断(被删除) , 如果有小伙伴门对rtw文件结构感兴趣 , 可以在模型配置中 , 把【 Rtw】选项勾选 , 这样完成代码生成动作后 , 这个文件就不会被删除 。
自定义目标系统的文件组成
假设我们制作的目标系统名称为mygt , 那就会包含如下文件:
Simulink代码生成提高教程

文章插图
每一个目标系统除了代码生成模板的设置外还会封装自己的模块 。每个模块都会包含以下文件:
Simulink代码生成提高教程

文章插图
刚刚提到了 , 生成代码的第一步就是配置目标【 】 , 所以创建自定义目标的第一步也就是设计一个自己的tlc模板 。这个模板可以参考ert.tlc来创建 。
Simulink代码生成提高教程

文章插图
系统TLC文件分为三个部分 , 顶部定义了自定义目标系统的名称 , 我们就叫它【This is My 】 。后面是编译选项 , 由于本次只生成C代码 , 所以编译模板选择【none】 。中部的代码定义了生成代码的类型、语言等 , 直接照抄ert.tlc 。底部定义了代码生成的文件夹命名格式、rtw设置直接引用ert.tlc、设置回调函数等 。
回调函数
当我们在 中选择了系统TLC之后 , 会调用这个函数 , 对目标系统的常见配置进行初始化 。
Simulink代码生成提高教程

文章插图
例如这三部分分别为:设置ERT生成主函数、设置不进行编译、设置用户代码模板
Simulink代码生成提高教程

文章插图
上述回调函数对应到模型的参数配置中就是上图红色部分 。当然你可以通过帮助找到你想设置参数的变量名