1# 一、配置cmake编译环境: 2 1、下载cmake 3 https://cmake.org/download/ 4 注:版本要高于3.5.1 5 2、 安装cmake 6 7``` 8tar -xvf cmake-3.*.*.tar 9cd cmake-3.*.* 10./bootstrap 11make 12make install 13``` 14 15 16 3、 验证是否安装成功 17 18``` 19cmake --version 20``` 21 22 23 显示cmake 版本即为成功 24 25# 二、配置编译工具链 26 1、 下载工具链 27 64位:wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/aarch64-linux-gnu/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.tar.xz 28 32位:wget https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz 29 2、 aarch64-linux-gnu安装过程 30 a、解压,并放置在自己需要的文件夹内 31 tar -xvJf ***.tar.xz 32 b、编辑bash.bashrc文件 33 sudo vi ~/.bashrc 34 c、添加变量 35 export PATH=path_to/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin:$PATH 36 d、更新环境变量 37 source ~/.bashrc 38 e、检查环境是否加入成功 39 echo $PATH 40 下方出现刚添加的PATH即为成功 41 f、运行aarch64-linux-gnu-gcc -v,查看gcc安装版本 42 43# 三、准备头文件、库、模型、模型输入文件 44 45资源获取路径: 46 47https://gitee.com/umspark/aml_npu_sdk 48 49移动相关文件如下所示: 50 51工作目录结构 52 53``` 54├── linux_nn_sdk_V1.9 55│ ├── include 56│ │ ├── nn_sdk.h 57│ │ └── nn_util.h 58│ └── lib 59│ ├── lib32 60│ └── lib64 61└── yolo 62 ├── CMakeLists.txt 63 ├── include 64 │ ├── jconfig.h 65 │ ├── jmorecfg.h 66 │ └── jpeglib.h 67 ├── main.cpp 68 ├── nn_demo.h 69 ├── opencv 70 │ ├── include 71 │ ├── lib32 72 │ └── lib64 73 └── postprocess_util.cpp 74``` 75 76# 四、可执行文件编译 77 1、修改CMakeLists.txt 78 A、修改GCC_PATH: 79 修改line 6 :SET(GCC_PATH /xxx/xxx) 80 设置gcc-linaro路径:设置为第二步配置工具链中,解压后工具链放置目录。 81 例如,电脑上放置的路径是:/homeF/junwen.dai/a311d/linux_nnsdk_v1.9.4/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu 82 即设置:SET(GCC_PATH /homeF/junwen.dai/a311d/linux_nnsdk_v1.9.4) 83 84 B、编译arm32或者arm64可执行文件: 85 line4/line5为设置编译32位或者64位可执行文件。 86 SET(ARM_32 arm_32) 87 SET(ARM_64 arm_64) 88 89 需要编译哪个,就注释掉另外一个即可,如当前需要编译32位的,即修改成: 90 SET(ARM_32 arm_32) 91 #SET(ARM_64 arm_64) 92 D、line29及30修改可执行文件名称 93 注:用户自建工程可将CMakeLists.txt文件拷贝到工程main函数同级目录下。 94 95 2、编译 96 在nnsdk路径下执行命令: 97 A、cmake . //当前路径生成makefile 98 B、make //编译 99 生成的可执行文件在当前目录下 100 101# 五、可执行文件运行 102 103 1、将lib和模型和模型输入图片放到/data目录下 104 105可临时使用环境变量 106 107``` 108export LD_LIBRARY_PATH=./lib 109``` 110 111ld-linux-aarch64.so.1放到/lib/ld-linux-aarch64.so.1 112 113给ld-linux-aarch64.so.1和sdk19_64权限 114 115 2.加载ko 116 117``` 118insmod galcore.ko 119``` 120 121 3、执行命令: 122 123``` 124#执行程序 模型 图片 125./sdk19_64 ./yolov5s.nb ./bus.jpg 126``` 127 128打印: 129 130``` 131# ./sdk19_64 ./yolov5s.nb ./bus.jpg 132the input type should be 640*640*3 133used time: 0.040822 s; fps: 24.496595 134object_num:4 135class:bus,prob:0.623733,[left = 88,right = 556,top = 126,bot = 464] 136class:person,prob:0.872407,[left = 208,right = 287,top = 246,bot = 505] 137class:person,prob:0.852847,[left = 109,right = 229,top = 231,bot = 538] 138class:person,prob:0.864583,[left = 480,right = 560,top = 238,bot = 525] 139``` 140 141