logo资料库

Simulink自动生成代码详解.doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
一、建立任务
二、环境配置
三、代码生成
四、封装成函数及优先级设置
一、建立任务 Matlab 版本为 R2014a。 Signal 为模型输入接口变量,Act 为模型输出接口变量,每个 Task 中的内容均一样。 接口配置需要注意其数据类型和 Storage Class,两者影响生成代码中的变量的声明。在 Storage type qualifier 中可 以加入其他的限定符。 这里将 Signal 全部设定为 Double 类型的 Imported Entern 类型,将 Act 全部设定为 Exported Global 类型。
二、环境配置 在 Simlink 模型窗口中选择 Simulation | Modele Configuration Parameters 命令,弹出如下图所示的参数设置对话 框。在左边的目录树中我们关心的项有 Solver,Hardware Implementation,Code Generation. 2.1,Sover 配置 Type 选项需要配置成定步长。步长时间和任务调度周期一致。仿真终止时间设置为 inf。其他参数为默认。
2,Hardware 配置 根据自己的开发环境,选择相应的目标板。 3,Code Generation 配置 第一页勾选 Generate code only,其它为默认。 在 Reprot 中勾选生成报告和自动打开报告。 将 Interface 中 data exchange 的勾去掉,并将 Interface 设置为 None。
配置完毕后点 Apply 和 OK。 三、代码生成 在模型界面 Bulid Modle 即可自动生成代码。由于我们勾选了报告生成,代码生成完毕后会自动弹出报告。
其中 ModelFiles 和 DataFiles 中的 5 个文件就是和我们模型结构紧密相关的文件。其它的也是运行必须的 Mabltab 数 据类型声明文件。 一并拷贝到我们的工程环境编译即可。 四、封装成函数及优先级设置 打开 Demo_1.h 和 Demo_1_Pricat.h 可以看到我们定义的输出变量和出入变量。 生成代码时除了我们的任务函数外,Matlab 自动生成了初始化的和终止函数。
我们在模型中我们定义了三个 Task,但如果不另外配置,生成代码时默认只生成一个函数。如果需要打包到独立的函数 和文件中,需要做如下配置。 在 Task 模块上点右键,选择 Block Parameters,勾选 treat as acomic unit.
在 Code Generation 一栏,设置任务的重入属性,函数名,文件名信息。 右键选择 Block Properties,在 Priority 一栏中设置 Task 优先级 ID,该值越小,则任务的执行次序越靠前。
这里我将 Task1~3 的优先级分别设置为 2,1,3。 以下是自动生成代码后的任务顺序。生成了 Task 的.c 和.h 文件。任务执行顺序也按照优先级顺序执行。
分享到:
收藏