算法移植arm开发板小结(一)

来源:互联网 发布:下载爱奇艺视频的软件 编辑:程序博客网 时间:2024/06/05 10:49

将windows的c/c++代码移植到友善Tinny4412的arm上运行。首先要先将windows代码在ubuntu系统下编译通过,然后在ubuntu系统下建立Tinny4412的arm交叉编译器,并将代码经过arm交叉编译器进行编译。编译后生成的静态库和可执行文件就可以放到arm板上运行了。

       总结如下:

  1. 拿到的Tinny4412的arm板,毫无疑问是linux系统的,只是编译器非x86,而是arm编译器。由于是linux系统,因而它具备linux系统大部分指令功能。与在linux系统下跑程序不同之处主要在于编译器,一个是x86的,一个是arm编译器。

 2. Tinny4412的arm板支持c和c++语言,支持c语言的c编译器为arm-none-linux-gnueabi-gcc ,支持c++语言的c++编译器为arm-none-linux-gnueabi-g++。,用于动态库链接的为arm-none-linux-gnueabi-g++,用于静态库链接的为arm-none-linux-gnueabi-ar,用于调试的为arm-none-linux-gnueabi-gdb。使用时,分别配置好交叉编译器和include路径、lib路径即可。

3. linux系统下的信号量运行机制、互斥量运行机制与windows下是一致的,只是具体内部代码实现不同而已。多线程中关于主线程挂起,子线程运行等机制与windows保持一致。但是,线程中linux是时间片的,windows是抢占式优先级的方式。

4.linux下要得到可执行文件或动态库、静态库,除了可以在控制台使用命令方式得到外,还可以使用与windows下的vs类似的codeblock进行。

5.opencv2.0以上的版本是基于c++类的方式,由于arm板支持c++编译,因而opencv2.0以上的版本大多数功能也支持在arm板上运行,本人成功将opencv2.4.9移植到arm板了。

6.Tinny4412的arm板支持GPU,因而未来可以将opencv中的opencl代码或gpu代码移植到arm板上。

7.由于检测有延时耗时,待检测的队列中如何数据存放过多,会因资源不足而崩溃。

8.    人脸检测算法的opencv库在TI DM6437上的移植http://www.61ic.com/Article/DaVinci/TMS320DM646x/201310/50733.html

0 0
原创粉丝点击