完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文主要参照书《SIMULINK仿真与代码生成技术入门到精通》
MATLAB®Coder™从MATLAB代码生成可读和可移植的C和C ++代码。 它支持大多数MATLAB语言和广泛的工具箱。可以将生成的代码集成到项目中作为源代码,静态库或动态库。还可以使用MATLAB环境中生成的代码,以加快MATLAB代码计算密集型部分。 命令窗口输入“coder”,会弹出图1界面: 图1 Coder界面 点击图1中红色方框可以加载.M文件,但是只能加载函数类文件,即文件中要有明确的输入输出,若一个文件中包含另一个文件,则要将其文档也一起加载。 加载完毕后点击右下角的 “NEXT”,进行下一步操作。 若在给出方程的一种引用方式,如图2中的Quater_to_Euler([1;0;0;0]),之后点击 “ Autodefine Input Types”,则系统可自动定义其为4*1的double矩阵。 同样也可以手动定义。点击图3中的红色方框,可以设置函数输入变量的类型。变量类型满足C语言的全部要求,也可以设置为矩阵形式,可以设置为结构体,结构体声明中可以直接输入结构体名字及变量名字。具体信息可详见蓝色的“learn more”。定义前最好知道函数输入的维数,若定义为不定维数的矩阵,影响其执行效率,增多代码数量。 图2 自动定义输入类型 图3 手动定义输入类型 设计输出后点击右下角的“NEXT”,进行下一步操作。 图4 程序检测界面 本步为源程序检测,给出函数的数值输入就可以在对话框显示出具体结果,点击图4中的“ Check For Issues”可以检测程序是否有错误不可以生成C文件,若有错误则根据提示进行修改。若无错误则会弹出图5的界面。界面下方弹出的是计算结果,程序界面显示的为调用次数。 图5 程序检测执行界面 M语言转化成C语言要在使用前声明变量,在上图中已经将pitch等变量声明为结构体形式,若按照M语言的矩阵声明格式,则会报错(如图6),若先将矩阵定义为m*n的零矩阵,则可避免错误 图6错误声明矩阵的形式 设计输出后点击右下角的“NEXT”,进行下一步操作 图6 代码生成设置 点击其中的”Build type“,其中有以下几种类型可选,通常我们 选择第一项。 图7 build type 其中的”Hardware Board“选项点击后可根据实际硬件需求来选择。举例如图8: 图8 硬件选择 点击图中的”more settings“,可进入代码生成选项窗口。 图9 代码生成窗口 选项”Paths“是选择代码生成的位置 如图10中,第二选项”Speed”则包含数据溢出等保护函数,建议不勾选。 图10 Speed 图11中, 其中”Memory“选项与处理器的能力相关,其中第一个选项框与不定长的数组有关,嵌入式开发最好不选,第二个选项则与处理器的堆栈有关,要根据处理器的堆栈大小来设置。 图11 Memory 图12中,选项“Code Appearance”与代码生成的风格有关,其中的“comments”部分建议勾选”MATLAB source code as comments“,方便代码的可读性。其他保持默认设置。 图12 Code appearance 图13中,在”Custom Code“的设置中,“Standard math library” 其中的选择C89/C90,在“Code replace library”中可以选择ARM Cortex-M3,实际上我们用的STM32F7系列的内核已经为ARM Cortex-M7,但是并没有此选项。 图13 硬件选择 最后设置完成后,点击“GENERATE”,无错误成功后为如下界面,其中的主函数为测试函数,并不执行具体的计算,其中的 initialize 函数为参数初始化函数,为空函数,可以自行添加相关初始化程序。 图14 代码生成成功后预览图 欢迎指正讨论,转载请注明,认同请点赞。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1602 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1536 浏览 1 评论
967 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
680 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1579 浏览 2 评论
1860浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
640浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
513浏览 3评论
525浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
500浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-19 04:25 , Processed in 0.621765 second(s), Total 49, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号