我是靠谱客的博主 精明红酒,最近开发中收集的这篇文章主要介绍从Matlab到FPGA(2021.8.26),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、今天将Matlab文件从m文件转成了c++,下面是具体操作步骤

(1)打开APP中的MATLAB Coder

 (2)选中所要编译的文件(这里推荐先将MATLAB中的一些c++不支持的函数(stread之类的)还有Verilog不支持的(类或者结构体或者双精度)修改)

 (3)直接NEXT

(4) 方法(1)输入函数的测试文件,方法二直接添加

(5)测试。最后在VS中能不能运行主要看这步,不过这步出错就参照我下面的注意事项。框中输入测试代码即可(调用转义为c++的MATLAB函数代码就行)

 (6)选c/c++,然后选择下面两个即可点击生成c++项目

 这里要注意,因为c++拥有标准的书写方法。比如在定义矩阵时,Matlab可以随意定义且随意删除,也就是说矩阵大小可以随意改变,这在C++中的数组中定义是不被允许的。我出现了下面这个问题,大家可以参照。我的Matlab崩溃了,后面再也没出现过这个问题,反正大家如果出现就照着这个思路改就行。

2、我们可以看到转成的c++文件可以运行,但并不能满足我们的个性化定制。比如:我们可以将一些常量转为c++的头文件,这样可以全局共享,下面的是我的修改方法:

将常数均放到头文件中定义

3、这周的事情就是学习c++与修改我的转义程序啦。从明天开始应该只有关于c++的天坑了,等完全修改完后,我们需要对c++修改成Vivado支持的c++格式。

4、c++中宏定义与头文件的使用(https://blog.csdn.net/abc_12366/article/details/79155540)

(1)宏定义与头文件

 

(2)区别

两者均是预编译文件,具体什么是预编译(本人理解就是静态的,原本就存在的可以减少编译时间,不对勿喷)我绝对没有什么区别,均类似于粘贴到c++文件中的代码,主要为了项目维护方便。

(3)什么时候用

5、VS2013中将转义后的c++文件导入到项目中操作步骤

(1)在VS中创建c++空项目

(2)将codegenlibxxx(这是你Matlab项目文件名称)下的.h文件全部导入到头文件下

 (2).cpp文件全部导入到源文件下(和上一步一样)。将codegenlibemtp_initexamples中的mian.cpp也导入到源文件下,然后对main.cpp中的int main()函数修改(将main.h的头文件删掉),这些应该大家都知道,修改后会出县6以后的问题,请大家继续阅读。

6、项目中不存在的头文件均在Matlab的安装路径“..externinclude”下 ,比如(tmwtypes.h)

7、对于“D_SCL_SECURE_NO_WARNINGS”错误,我们可以Matlab生成的所有CPP文件(只设置main函数是不行的),设置其预编译的属性“_SCL_SECURE_NO_WARNINGS”。请参考:https://blog.csdn.net/qq_41453285/article/details/103565045

8、c++返回数组的方法:

请参考(https://blog.csdn.net/u013912006/article/details/78968867#:~:text=C%2B%2B中函数是不,返回指针来实现。)

(1)c++中,函数定义参数时可以以定义或未定义大小的数组或数组的指针来作为函数参数

 (2)c++是不能直接返回数组的,但是可以返回数组指针(数组在内存中对应的地址)

参考上述地址的两种方法后。从编程的角度出发,第一种是比较规矩的写法。但第二种有点类似于前端语言(js,本人学过一点)异步的处理方法,为了节约时间,本人采用第二种方法。

大体来讲就是将数组传入函数,函数执行完再取出来(函数没有返回值

第一中方法就是传指针,数组保存的也是地址,这样就可以保持数据不被冲掉。

最后

以上就是精明红酒为你收集整理的从Matlab到FPGA(2021.8.26)的全部内容,希望文章能够帮你解决从Matlab到FPGA(2021.8.26)所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部