星期六, 16 04月 2022 16:30

手把手教你代码生成(下):SIMULINK代码生成

本文主要参照书《SIMULINK仿真与代码生成技术入门到精通》
Sinmulink coder 与Matlab coder生成的方式并不相同,前者在代码生成的输入输出定义中,并不能将其定义为结构体等类型,只能将输入输出定义为矩阵形式。同样的将函数封装为MATLAB function,设置输入输出端口。其中输入端口必须重新设置,右键端口1,点击“Block Parameters”选项,将“Port dimensions”设置为相应的输入格式,在本算例中设置为[4 1]。并且要对模型中的信号线命名,增加生成代码的可读性。操作为右键信号线,选择如图15 中选项。
图15 信号线命名
点击如图16选项,进入代码设置界面。
图16 进入设置界面
如图17中点击“System target file”右侧的“Browse”,如图选择“Embedded coder”。
图17 硬件选项
其中的Toolchain setting 设置为下图所示。
图18 Toolchain setting
如图18,点击“Custom Code”选项并将最上方的选项框打勾
图18 Custom Code
点击其中的“Code placement”选项,如下图选中最后一个选项。
图19 Code placement
同理,如图选中如下图选项
图20 Code placement
如图21,调用出“Code generate advisor”选项。选中此项目,点击“Run Select Checks”,依据报告进行相应的设置调整
图21 设置检查选项
最后点击“Build model”,生成代码如下图
图22 代码生成图
SIMULINK代码生成参数配置在Simulink完成代码移植前需要对Configuration Parameters配置,Configuration Parameters中集中管理着模型的代码生成方法、格式等约束条件,为了生成嵌入式代码,至少需要配合3部分:模型的解算器Solver、模型的系统目标文件(嵌入式系统目标文件),硬件实现规定(Hardware Implementation)。
图23 Model Configuration Parameters配置界面图
5.1 模型的解算器Solver模型解算器solver页面,如下图
图24 Solver图
Solver options中的Type选择为Fixed-stepSolver options中的Solver选择为discrete,理由:由于模型不是连续状态。Solver options中的Fixed-step size设置为auto,针对STM32的代码生成过程中,硬件驱动工具箱往往将步长step size作为其外设或内核中定时器的中断周期,使得生成打算法代码在硬件芯片中以同样的时间间隔执行。5.2 硬件实现规定(Hardware Implementation)Hardware Implementation页面,如下图
图25 Hardware Implementation图
Hardware board(硬件板):选择为None,不选择具体操作系统。Device vendor、Device type:设备制造商和设备型号。Largest atomic size:最大原子尺寸,关系数据的储存形式。5....

继续阅读完整内容

请查看下方广告以解锁文章剩余内容

广告加载中...
查看 14935