移植OpenCV到ARM平台

本文详细介绍了如何将OpenCV版本2.4.2移植到ARM平台FriendlyARM Tiny6410的过程,包括编译环境设置、库文件交叉编译步骤及最终的交叉编译流程,为开发者提供了一套完整的移植方案。

移植OpenCV到ARM平台  

2012-09-14 10:33:54|  分类: 默认分类 |  标签:linux  opencv  arm   |字号 订阅

OpenCV版本2.4.2,ARM平台友善之臂(FriendlyARM)Tiny6410

http://blog.chinaunix.net/uid-26544753-id-3284780.html

 
一、编译环境及库文件

linux环境:  Ubuntu 11.04
交叉编译:  4.5.1
arm平台:   tiny6410
libz:              zlib-1.2.7
libjpeg:         jpegsrc.v7
libpng:          libpng-1.5.10
libyasm:       yasm-1.2.0
opencv:        opencv-2.4.2
libx264:        x264-snapshot-20120608-2245
libxvid:          xvidcore-1.3.2
lffmpeg:        ffmpeg-0.10.3
cmake:         cmake-2.8.8-Linux-i386.tar,gz


二、opencv-2.4.1的移植过程
1. libz的交叉编译:
# ./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --shared
修改makefile, 在原来的gcc, ar, ranlib之前加上arm-linux-前缀,如下
        CC=arm-linux-gcc
        LDSHARED=arm-linux-gcc -shared -wl, -soname,libz.so.1,--version-script,zlib.map
        CPP=arm-linux-gcc -E
        AR=arm-linux-ar
        RANLIB=arm-linux-ranlib
#make
#make install
2. libjpeg的交叉编译:
#./configure --host=arm-linux --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static
#make
#make install
3. libpng的交叉编译
#./configure --host=arm-linux --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static
#make
#make install
4. yasm的交叉编译:
#./configure --host=arm-linux --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --enable-static 
#make
#make install
5. libx264的交叉编译:
#./configure --enable-shared --host=arm-linux --disable-asm --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi
修改config.mak,如下
        CC=arm-linux-gcc
        LD=arm-linux-gcc -o
        AR=arm-linux-ar rc
        RANLINB=arm-linux-ranlib
(注,arm-linux-ar rc后面需要加一个空格)
#make
#make install
6. libxvid的交叉编译:
#cd build/generic
#./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --host=arm-linux  --disable-assembly
#make
#make install
7. ffmpeg的交叉编译:
#./configure --prefix=/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi --enable-shared --disable-static --enable-gpl --enable-cross-compile --arch=arm --disable-stripping --target-os=linux --enable-libx264 --enable-libxvid --cc=arm-linux-gcc --enable-swscale
#make
#make install
8. cmake-gui安装
#apt-get install cmake-qt-gui
9、opencv 2.4.2的交叉编译:
用到的主要目录说明:
交叉编译工具链所在目录      /opt/FriendlyARM/toolschain/4.5.1/
安装opencv的目录                /usr/local/
opencv源码所在目录             /home/6410/opencv/opencv-2.4.2/
编译好的opencv库所在目录   /home/6410/opencv/opencv-2.4.2/build
#mkdir build
#cd build
#cmake-gui
选择源代码目录/home/6410/opencv/opencv-2.4.2/
选择Build目录:/home/6410/opencv/opencv-2.4.2/build
点击Configure,保持generator为Unix Makefiles,
选择Specify options for cross-compiling,点击Next,
Operating System填写arm-linux
C Compilers填写/opt/FriendlyARM/toolschain/4.5.1/bin/arm-linux-gcc
C++ Compilers填写/opt/FriendlyARM/toolschain/4.5.1//bin/arm-linux-g++
程序库的Target Root填写/opt/FriendlyARM/toolschain/4.5.1/
然后点击Finish,点击Configure,产生配置列表,在其中
选择安装目录(CMAKE_INSTALL_PREFIX)为/opt/FriendlyARM/toolschain/4.5.1/arm-none-linux-gnueabi
去掉WITH_CUDA,WITH_TIFF勾选,点击Generate生成Makefile
修改CMakeCache.txt,CMAKE_EXE_LINKER_FLAGS原来为空,加上-lpthread -lrt
#make
#make install
安装完毕
基于STM32 F4的永磁同步电机无位置传感器控制策略研究内容概要:本文围绕基于STM32 F4的永磁同步电机(PMSM)无位置传感器控制策略展开研究,重点探讨在不依赖物理位置传感器的情况下,如何通过算法实现对电机转子位置和速度的精确估计与控制。文中结合嵌入式开发平台STM32 F4,采用如滑模观测器、扩展卡尔曼滤波或高频注入法等先进观测技术,实现对电机反电动势或磁链的估算,进而完成无传感器矢量控制(FOC)。同时,研究涵盖系统建模、控制算法设计、仿真验证(可能使用Simulink)以及在STM32硬件平台上的代码实现与调试,旨在提高电机控制系统的可靠性、降低成本并增强环境适应性。; 适合人群:具备一定电力电子、自动控制理论基础和嵌入式开发经验的电气工程、自动化及相关专业的研究生、科研人员及从事电机驱动开发的工程师。; 使用场景及目标:①掌握永磁同步电机无位置传感器控制的核心原理与实现方法;②学习如何在STM32平台上进行电机控制算法的移植与优化;③为开发高性能、低成本的电机驱动系统提供技术参考与实践指导。; 阅读建议:建议读者结合文中提到的控制理论、仿真模型与实际代码实现进行系统学习,有条件者应在实验平台上进行验证,重点关注观测器设计、参数整定及系统稳定性分析等关键环节。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值