DSP

ZYNQ-NE10安装与编译

2019-07-13 20:09发布


Ne10介绍

Ne10是一个通用开源的函数库里面提供了大量的浮点运算、矢量计算,和矩阵操作函数,并针对配备NEON SIMD功能ARM的CPU进行了大量优化。允许通过静态或动态链接轻松集成到各种应用程序中。
目前支持平台:
linux,android,ios。
Ne10目前有四个模块:
1、(信号处理)DSP 包含常用的FFT FIR IIR等函数
2、(数学计算)Math
3、(图像处理)ImgprocI
4、physics

Ne10库的安装

下载地址:Ne10库-官网

配置编译器

在/etc/bash.bashrc中添加如下: export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabi- export PATH=/个人交叉编译器路径/gcc-linaro-4.9-2016.02-x86_64_arm-linux-gnueabi/bin/:$PATH 运行source /etc/bash.bashrc,使其生效。
同时修改GNUlinux_config.cmake下的编译器选项,根据自己的编译器进行修改,因为自己的编译器并不是硬浮点编译器,所以将下方标记的去掉hf。 set(GNULINUX_PLATFORM ON) if(NOT DEFINED ENV{NE10_LINUX_TARGET_ARCH}) set(NE10_LINUX_TARGET_ARCH "armv7") else() set(NE10_LINUX_TARGET_ARCH $ENV{NE10_LINUX_TARGET_ARCH}) endif() if(NE10_LINUX_TARGET_ARCH STREQUAL "armv7") set(CMAKE_C_COMPILER arm-linux-gnueabi-gcc)//去掉hf set(CMAKE_CXX_COMPILER arm-linux-gnueabi-g++)//去掉hf set(CMAKE_ASM_COMPILER arm-linux-gnueabi-as)//去掉hf find_program(CMAKE_AR NAMES "arm-linux-gnueabihf-ar") find_program(CMAKE_RANLIB NAMES "arm-linux-gnueabihf-ranlib") elseif(NE10_LINUX_TARGET_ARCH STREQUAL "aarch64") set(CMAKE_C_COMPILER aarch64-linux-gnu-gcc) set(CMAKE_CXX_COMPILER aarch64-linux-gnu-g++) set(CMAKE_ASM_COMPILER aarch64-linux-gnu-as) find_program(CMAKE_AR NAMES "aarch64-linux-gnu-ar") find_program(CMAKE_RANLIB NAMES "aarch64-linux-gnu-ranlib") endif() mark_as_advanced(CMAKE_AR) mark_as_advanced(CMAKE_RANLIB)

编译命令

cd $NE10_PATH mkdir build && cd build export NE10_LINUX_TARGET_ARCH=armv7 cmake -DCMAKE_TOOLCHAIN_FILE=../GNUlinux_config.cmake .. make

编译结果

编译得到:
./modules/libNE10.a(库文件)、
./samples/NE10_test_static(测试程序)、
./test/N个测试文件

使用方法

在代码中需要include头文件如下: #include "./inc/NE10.h" 在交叉编译时的命令如下: arm-linux-gnueabi-gcc test.c -mfpu=neon -L. -lNE10 -lm