编译之前请确定你的设备支持NEON加速
cat /proc/cpuinfo | grep neon
如果支持可以看到
我们先从git上拉下代码
git clone https://github.com/projectNe10/Ne10.git
解压缩后在CMakeLists.txt目录下
mkdir build
接下来,我们修改下config文件
vi GNUlinux_config.cmake
我用的树莓派是ARMV7,所有config文件如下所示。
set(GNULINUX_PLATFORM ON)
set(CMAKE_SYSTEM_NAME "Linux")
set(CMAKE_SYSTEM_PROCESSOR "arm")
set(NE10_LINUX_TARGET_ARCH "armv7")
set(CMAKE_C_COMPILER arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER arm-linux-gnueabihf-g++)
set(CMAKE_ASM_COMPILER arm-linux-gnueabihf-as)
find_program(CMAKE_AR NAMES "arm-linux-gnueabihf-ar")
find_program(CMAKE_RANLIB NAMES "arm-linux-gnueabihf-ranlib")
mark_as_advanced(CMAKE_AR)
mark_as_advanced(CMAKE_RANLIB)
大致内容就是设定编译的目标架构和交叉编译的toolchain。值得注意的是arm-linux-gnueabihf-gcc 还是arm-linux-gnueabi-gcc要根据设备来确定,通过
readelf -A /proc/self/exe | grep Tag_ABI_VFP_args
如果找到Tag_ABI_VFP_args标签,那么你是在一个armhf系统上运行arm-linux-gnueabihf-gcc,使用。如果没有返回,那么它是armel,使用arm-linux-gnueabi-gcc。
配置好了之后就可以编译了
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../GNUlinux_config.cmake ..
make
编译好了之后lib会在build下的modules中,测试文件在samples中。挂载到树莓派上运行以下: