针对RaspBerry PI的OpenCV交叉编译

时间:2015-04-07 23:01:44

标签: linux opencv floating-point arm

我使用crosstools生成的工具链交叉编译了用于Raspberry ARM BCM2708 ARMv6的opencv Ver 2.4.11。当我在RaspBerry上运行我的程序时,一切正常(这是一个人脸检测示例)。

不幸的是执行速度非常慢,所以我想启用VFP tu使用hw浮动端口支持ARMv6。我使用softfp重建了工具链(但也是hardfp - 没有任何变化)我已经重新编译了opencv,支持VFPV3。不幸的是,RaspBerry配备了ARMv6处理器,似乎与VFPV3不兼容(当使用VFPV3支持构建执行代码时,它会抛出非法指令)。

所以我想启用RaspBerry处理器应该支持的VFP支持。我无法运行opencv的cmake脚本来启用VFP支持。它仅适用于neon或vfpv3开关。所以我尝试用vfpv3生成makefile,然后用sed用vfp替换vfpv3。但是当我运行make configure进程再次开始失去sed引入的所有修改。如何强制cmake使用mfpu=vfp代替mfpu=vfpv3

我用cmake运行:

cmake -DWITH_CUDA=OFF -DWITH_OPENCL=OFF -DENABLE_VFPV3=ON \
-DCMAKE_TOOLCHAIN_FILE=../platforms/linux/armct.cmake ..

和sed脚本的例子是:

find . -name "*.make" -type f -exec sed -i 's/mfpu=vfpv3/mfpu=vfp/g' {} +

0 个答案:

没有答案