【RoboMaster】官方开源代码移植X86平台详解

环境:ubuntu18.04  qt5.13.2  opencv3.4.6

官方开源地址:  RM开源代码地址

为什么要做移植:
官方代码基于ARM平台编写,但NUC/妙算2(CPU版本)都是X86平台,为了使用X86平台需要进行移植。

移植步骤:

1、删除.pro文件下的所有和neon有关的代码,因为neon是ARM平台的加速库,不能在X86平台下使用。
需要删除的代码如下

QMAKE_CXXFLAGS += -mfloat-abi=hard -mfpu=neon -march=armv7-a -marm -mthumb-interwork
QMAKE_CFLAGS += -mfloat-abi=softfp -mfpu=neon -march=armv7-a -marm -mthumb-interwork

这两段是QT编译时调用neon库的参数,需要全部删除。

sse_to_neon.hpp \

这段是包含了需要用到neon的头文件,也要删除。

2、删除ArmorDetector.cpp中对neon的调用。
删除31、32、33行的

#ifndef USE_NEON 
//#define USE_NEON 
#endif

从288行的#else直到501行的#endif都需要删除
170行的#ifndef需要删除,此处对应前面删除的#else

3、修改.pro文件的lib包含为

使其能够包含thread需要用到的pthread库

LIBS += `pkg-config --libs opencv` \
/usr/lib/x86_64-linux-gnu/libpthread.so

到此就已经解决了代码中的ARM部分的冲突

运行时可能的报错还会涉及到串口的调用和ubuntu的路径问题,需要按照自己的实际配置进行修改

点赞

发表回复

电子邮件地址不会被公开。必填项已用 * 标注