如何将matlab算法程序生成的C文件嵌入到ARM嵌入式程序中?

时间:2023-01-03 00:56:02
如何将matlab算法程序生成的C文件嵌入到ARM嵌入式程序中?之前做过matlab联合VC的,那时候是把matlab相关dll文件也放到VC里的,不知道联合ARM嵌入式程序的时候,是不是需要dll文件?或者是只需要一个matlab生成的C文件即可??

2 个解决方案

#1


同问 ,我也需要  

#2


首先回答将C文件嵌入到arm嵌入式程序中的问题,根据你的问题,你所编写的程序属于运行于操作系统之上的程序,与硬件平台应该是没有太多关系的。所以所有的c语言程序都可以链接到你原有的程序代码里。
其次,在之前VC联合matlab的时候,之所以要添加dll,是因为你所用的代码引用了dll中编译好的函数。dll是matlab公司将具有某一部分功能的源程序编译好生成了一个dll文件。如果你没有添加这些dll,就应该会有运行时的错误,找不到函数入口,只有函数声明,却找不到函数实现。
再次,在嵌入式环境下,要看你的matlab的C文件有没有引用外部的函数,如果你能把所有引用到的函数的定义全部转成C文件,就不再需要添加dll。

如果你的matlab的c文件还引用了其他函数,这些函数实现就在某个dll,你就需要链接那个dll。
但是,在arm嵌入式下和你的vcwindows x86平台下,动态库编译是不一样的,linux下的动态库是.so文件。就是说,你要将生产dll的源代码拿来重新编译生成linux下的so文件才行。

#1


同问 ,我也需要  

#2


首先回答将C文件嵌入到arm嵌入式程序中的问题,根据你的问题,你所编写的程序属于运行于操作系统之上的程序,与硬件平台应该是没有太多关系的。所以所有的c语言程序都可以链接到你原有的程序代码里。
其次,在之前VC联合matlab的时候,之所以要添加dll,是因为你所用的代码引用了dll中编译好的函数。dll是matlab公司将具有某一部分功能的源程序编译好生成了一个dll文件。如果你没有添加这些dll,就应该会有运行时的错误,找不到函数入口,只有函数声明,却找不到函数实现。
再次,在嵌入式环境下,要看你的matlab的C文件有没有引用外部的函数,如果你能把所有引用到的函数的定义全部转成C文件,就不再需要添加dll。

如果你的matlab的c文件还引用了其他函数,这些函数实现就在某个dll,你就需要链接那个dll。
但是,在arm嵌入式下和你的vcwindows x86平台下,动态库编译是不一样的,linux下的动态库是.so文件。就是说,你要将生产dll的源代码拿来重新编译生成linux下的so文件才行。