Hiveboard是东南大学自主研发的一块嵌入式开发板,用的是北大的unicore处理器核。在纵海杯东南大学第六届嵌入式竞赛中,我们做的是基于Hiveboard的图像拼接技术。平台是opencv,因此需要移植到开发板上。参考了opencv在ARM上的移植,下面是具体移植的步骤:
由于Opencv2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。 ubuntu下安装cmake比较简单,
apt-get install cmake
我们选择的是opencv2.4.4版本,源码可到opencv网站下载
解压OpenCV压缩文件,得到文件夹,通过图形界面配置。
输入命令cmake-gui 打开cmake的gui界面,开始进行配置,配置过程如下面所示:
1、选定解压后的源文件和将要编译的文件目录,这个自己之前先建好。
2、点击Configure 选择工程类型,选择交叉编译,点击下一步。如下图所示:
3、在下图的界面中选择交叉编译工具链以及库文件相关信息,按照图中的进行填写,其中C、C++和Target Root为交叉编译工具链的实际路径,根据宿主机实际安装路径填写。
4、点击Finsh完成初步配置。
5、此时主界面如下图所示,这时Cmake会读取程序的一些配置信息,可以对每一个编译选项进行修改,这里去掉WITH_TIFF支持并修改安装路径,其他配置可以根据需求选择,蓝色部分为配置输出路径,可按自己需求填写,/usr/uni-yi/是我自己最终交叉编译输出的路径。
6、配置完成后,点击Configure,生成界面如下:
7、再点击Generate生成界面如下图:
8、通过终端进入OpenCV-unicore目录,make编译,编译过程中出错如下 :
原因是cmake不认识我定义的unicore32-linux系统标记,没有加上库pthread和rt的链接选项
此时需要修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt
按照此方法更改对应文件,如下图所示:
此处在CMakeCache.txt 的173行,添加-lpthread -lrt,然后继续编译。编译过程十来分钟左右,编译成功结果如下:
9、运行make install进行安装,
在我的安装目录中就会多出以下几个文件夹:
10、lib文件夹即生成的库文件,如下图所示:
拷贝到开发板对应的lib目录即可。
移植完毕后可通过以下命令编译测试文件:
unicore32-linux-g++ image.cpp -o image -I/usr/uni-yi/include -lopencv_core -lopencv_highgui -lpthread -lrt
其中-I是你编译生成的的include目录,-lopencv_core, -lopencv_highgui,-lpthread,-lrt 是要链接的几个库。