概述
本文主要参照书《SIMULINK仿真与代码生成技术入门到精通》
MATLAB®Coder™从MATLAB代码生成可读和可移植的C和C ++代码。 它支持大多数MATLAB语言和广泛的工具箱。可以将生成的代码集成到项目中作为源代码,静态库或动态库。还可以使用MATLAB环境中生成的代码,以加快MATLAB代码计算密集型部分。
命令窗口输入“coder”,会弹出图1界面:
点击图1中红色方框可以加载.M文件,但是只能加载函数类文件,即文件中要有明确的输入输出,若一个文件中包含另一个文件,则要将其文档也一起加载。
加载完毕后点击右下角的 “NEXT”,进行下一步操作。
若在给出方程的一种引用方式,如图2中的Quater_to_Euler([1;0;0;0]),之后点击 “ Autodefine Input Types”,则系统可自动定义其为4*1的double矩阵。
同样也可以手动定义。点击图3中的红色方框,可以设置函数输入变量的类型。变量类型满足C语言的全部要求,也可以设置为矩阵形式,可以设置为结构体,结构体声明中可以直接输入结构体名字及变量名字。具体信息可详见蓝色的“learn more”。定义前最好知道函数输入的维数,若定义为不定维数的矩阵,影响其执行效率,增多代码数量。
设计输出后点击右下角的“NEXT”,进行下一步操作。
本步为源程序检测,给出函数的数值输入就可以在对话框显示出具体结果,点击图4中的“ Check For Issues”可以检测程序是否有错误不可以生成C文件,若有错误则根据提示进行修改。若无错误则会弹出图5的界面。界面下方弹出的是计算结果,程序界面显示的为调用次数。
M语言转化成C语言要在使用前声明变量,在上图中已经将pitch等变量声明为结构体形式,若按照M语言的矩阵声明格式,则会报错(如图6),若先将矩阵定义为m*n的零矩阵,则可避免错误
设计输出后点击右下角的“NEXT”,进行下一步操作
点击其中的”Build type“,其中有以下几种类型可选,通常我们 选择第一项。
其中的”Hardware Board“选项点击后可根据实际硬件需求来选择。举例如图8:
点击图中的”more settings“,可进入代码生成选项窗口。
选项”Paths“是选择代码生成的位置
如图10中,第二选项”Speed”则包含数据溢出等保护函数,建议不勾选。
图11中, 其中”Memory“选项与处理器的能力相关,其中第一个选项框与不定长的数组有关,嵌入式开发最好不选,第二个选项则与处理器的堆栈有关,要根据处理器的堆栈大小来设置。
图12中,选项“Code Appearance”与代码生成的风格有关,其中的“comments”部分建议勾选”MATLAB source code as comments“,方便代码的可读性。其他保持默认设置。
图13中,在”Custom Code“的设置中,“Standard math library” 其中的选择C89/C90,在“Code replace library”中可以选择ARM Cortex-M3,实际上我们用的STM32F7系列的内核已经为ARM Cortex-M7,但是并没有此选项。
最后设置完成后,点击“GENERATE”,无错误成功后为如下界面,其中的主函数为测试函数,并不执行具体的计算,其中的 initialize 函数为参数初始化函数,为空函数,可以自行添加相关初始化程序。
欢迎指正讨论,转载请注明,认同请点赞。
最后
以上就是直率酸奶为你收集整理的c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成的全部内容,希望文章能够帮你解决c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复