我是靠谱客的博主 直率酸奶,最近开发中收集的这篇文章主要介绍c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

5494d4dd4f293ba851d70e3978fee500.png
FrancisZhao:专栏文章列表以及一些说明​zhuanlan.zhihu.com
28bf31d2e322bf775b4f9b276ffdd457.png
FrancisZhao:手把手教你代码生成(下):SIMULINK代码生成​zhuanlan.zhihu.com
0801e7ebfe5f061d4f0fb965f931ff0b.png

本文主要参照书《SIMULINK仿真与代码生成技术入门到精通》

MATLAB®Coder™从MATLAB代码生成可读和可移植的C和C ++代码。 它支持大多数MATLAB语言和广泛的工具箱。可以将生成的代码集成到项目中作为源代码,静态库或动态库。还可以使用MATLAB环境中生成的代码,以加快MATLAB代码计算密集型部分。

命令窗口输入“coder”,会弹出图1界面:

05737df77ec650b391f994b8503b7fec.png
图1 Coder界面

点击图1中红色方框可以加载.M文件,但是只能加载函数类文件,即文件中要有明确的输入输出,若一个文件中包含另一个文件,则要将其文档也一起加载。

加载完毕后点击右下角的 “NEXT”,进行下一步操作。

若在给出方程的一种引用方式,如图2中的Quater_to_Euler([1;0;0;0]),之后点击 “ Autodefine Input Types”,则系统可自动定义其为4*1的double矩阵。

同样也可以手动定义。点击图3中的红色方框,可以设置函数输入变量的类型。变量类型满足C语言的全部要求,也可以设置为矩阵形式,可以设置为结构体,结构体声明中可以直接输入结构体名字及变量名字。具体信息可详见蓝色的“learn more”。定义前最好知道函数输入的维数,若定义为不定维数的矩阵,影响其执行效率,增多代码数量。

6b904df1f48d60b467a409718a618e5a.png
图2 自动定义输入类型

5ef5ce5dea3053abffbd8d89863f14c0.png
图3 手动定义输入类型

设计输出后点击右下角的“NEXT”,进行下一步操作。

b3e4bc1a4869237e1f66f79d8633af0f.png
图4 程序检测界面

本步为源程序检测,给出函数的数值输入就可以在对话框显示出具体结果,点击图4中的“ Check For Issues”可以检测程序是否有错误不可以生成C文件,若有错误则根据提示进行修改。若无错误则会弹出图5的界面。界面下方弹出的是计算结果,程序界面显示的为调用次数。

7dd9be68c1477fa52a379e616c86eaac.png
图5 程序检测执行界面

M语言转化成C语言要在使用前声明变量,在上图中已经将pitch等变量声明为结构体形式,若按照M语言的矩阵声明格式,则会报错(如图6),若先将矩阵定义为m*n的零矩阵,则可避免错误

33ba99c76d960c838e6a8c00b7c7b5a4.png
图6错误声明矩阵的形式

设计输出后点击右下角的“NEXT”,进行下一步操作

49cc71ece012c17e37fea4281cf0ba8a.png
图6 代码生成设置

点击其中的”Build type“,其中有以下几种类型可选,通常我们 选择第一项。

cac770e5eb0a13c1c7fd4e80dd3174c9.png
图7 build type

其中的”Hardware Board“选项点击后可根据实际硬件需求来选择。举例如图8:

b06232de5faa241f4c83a6d09b7f0866.png
图8 硬件选择

点击图中的”more settings“,可进入代码生成选项窗口。

7e1d8b8622afb4b08711717a74f16700.png
图9 代码生成窗口

选项”Paths“是选择代码生成的位置

如图10中,第二选项”Speed”则包含数据溢出等保护函数,建议不勾选。

5f28dcd8e8565470c9c9174f3e7cf007.png
图10 Speed

图11中, 其中”Memory“选项与处理器的能力相关,其中第一个选项框与不定长的数组有关,嵌入式开发最好不选,第二个选项则与处理器的堆栈有关,要根据处理器的堆栈大小来设置。

7a7ae301cb352cec06950649d1ca8916.png
图11 Memory

图12中,选项“Code Appearance”与代码生成的风格有关,其中的“comments”部分建议勾选”MATLAB source code as comments“,方便代码的可读性。其他保持默认设置。

7251a5df48fe96ac83ba07dd95f63e54.png
图12 Code appearance

图13中,在”Custom Code“的设置中,“Standard math library” 其中的选择C89/C90,在“Code replace library”中可以选择ARM Cortex-M3,实际上我们用的STM32F7系列的内核已经为ARM Cortex-M7,但是并没有此选项。

e0839ec943a917ae2e941689d3c2f268.png
图13 硬件选择

最后设置完成后,点击“GENERATE”,无错误成功后为如下界面,其中的主函数为测试函数,并不执行具体的计算,其中的 initialize 函数为参数初始化函数,为空函数,可以自行添加相关初始化程序。

303c5d9e6fccf5d946ad4707197ed1eb.png
图14 代码生成成功后预览图

欢迎指正讨论,转载请注明,认同请点赞。

最后

以上就是直率酸奶为你收集整理的c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成的全部内容,希望文章能够帮你解决c语言随机生成int64_t类型的数据_手把手教你代码生成(上):MATLAB代码生成所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(67)

评论列表共有 0 条评论

立即
投稿
返回
顶部