Linux SDK入门指南 准备工作 本文需要使用以下设备(或其代替品): ROC-RK3399-PC ROC-RK3399-PC 介绍。 TF卡 建议使用8GB及以上的容量 串口或支持HDMI的显示器 用于连接开发板进行操作,串口连接可参考 - 串口 调试 键盘和鼠标 如果使用串口则不需要。 电源 15V/3A,45W 电源适配器 神经网络计算卡 本文使用Firefly开发板配套的NCC S1模块或USB Dongle模块 ,对于其它模块不适用。 可上网的电脑 可为Windows或Linux系统。如需要进行交叉编译推荐使用Ubuntu 16.04,Windows系统不适用,其它Linux分支请自行测试。 其操作人员需具备Linux系统的基本使用技能,同时需购买 AI资料U盘 。 环境配置 电脑操作 此小节的操作在电脑中。 1. 烧写固件 ROC-RK3399-PC测试的环境为Ubuntu 16.04,包含完整编译及运行环境的系统可 从 这里下载 ,或从购买的AI资料U盘中获取。 烧写完SD卡后,可以先上电测试一下是否烧写成功。 2. 交叉编译环境配置(可选) 这里以Ubuntu 16.04为例,其它系统环境请自行测试。 交叉编译的工具链推荐使用Linaro aarch64 7.2.1及更高版本,7.2.1下载地址 : https://releases.linaro.org/components/toolchain/binaries/7.2-2017.11 /aarch64-linux-gnu/ 在编译前请将 aarch64 gcc 添加到环境变量PATH中,示例如下: ubunut16.04:~$ sudo tar xJf gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu.tar.xz -C /opt ubunut16.04:~$ export PATH=/opt/gcc-linaro-7.2.1-2017.11-x86_64_aarch64-linux-gnu/bin:$PATH ubunut16.04:~$ aarch64-linux-gnu-g++ -v 从AI资料U盘中复制并解压GTISDK_Linux_aarch64_v3-1-2a.tar.gz,假设SDK复 制到用户主目录下,解压命令参考操作如下: ubunut16.04:~$ tar zxvf GTISDK_Linux_aarch64_v3-1-2a.tar.gz -C ~/ 开发板操作 请将烧写了固件的SD卡插入ROC-RK3399-PC并连接鼠标和键盘,然后上电开机。 将AI资料U盘中的GTISDK_Linux_aarch64_v3-1-2a.tar.gz复制到开发板中,并解 压。 假设SDK复制到用户主目录下,如下为解压参考操作: firefly@firefly:~$ tar zxvf GTISDK_Linux_aarch64_v3-1-2a.tar.gz -C ~/ 这里解压GTISDK到/home/firefly/目录即firefly用户主目录下。 编译及运行 交叉编译(可选) 进行交叉编译前请先配置环境 - 交叉编译环境配置 进行交叉编译首先进入GTISDK目录下,然后导入编译需要的环境编译,其操作如 下: ubunut16.04:~$ cd ~/GTISDK ubunut16.04:~GTISDK$ source Build/aarch64_cross.env CROSS COMPILE for aarch64: CPU_ARCH = aarch64 OS_TYPE = Linux GTI_CC = aarch64-linux-gnu-g++ 紧接着就可以进行编译了,最终生成的可执行文件为 liteSample ,在Samples/Sample目录下。编译命令如下: ubunut16.04:~$ make -C Samples/Sample 将liteSample复制进ROC-RK3399-PC中即可进行运行测试,参考如下: ubunut16.04:~$ scp Samples/Sample/liteSample firefly@:GTISDK/Bin/Linux/aarch64/ 其中为开发板的ip地址,使用此方法请确认开发板与电脑同一网段。 在开发板中编译 在配置好的Ubuntu中编译很简单,操作如下: firefly@firefly:~$ cd ~/GTISDK firefly@firefly:~GTISDK$ make -C Samples/Sample firefly@firefly:~GTISDK$ cp Samples/Sample/liteSample Bin/Linux/aarch64/ 运行 liteSample的运行需要环境变量GTISDKPATH,运行前请先进行设置。示例如下: firefly@firefly:~$ export GTISDKPATH=/home/firefly/GTISDK firefly@firefly:~$ cd GTISDK/Bin/Linux/aarch64/ firefly@firefly:~GTISDK/Bin/Linux/aarch64$ ./liteSample 如果神经网络计算卡是NCC S1的请修改 data/Models/gti2801/gnet2_3/cnn_3/userinput.txt中的"/dev/sg0"为 "/dev/mmcblk1",同时请在root用户下运行liteSample,使用 sudo ./liteSample ,会出现找不到GTISDKPATH的情况。 liteSample默认使用SDK下data/Image_Lite/中的数据,如果想使用其它图片数 据需要先对图片进行转换。图片转换工具可在 SDK的Tools/image_tool/中找到 。工具依赖python2.x和opencv,可以在开发板或电脑中使用。以下安装操作在 开发板和电脑Ubuntu 16.04中通用: firefly@firefly:~$ sudo apt-get install python python-opencv image_tool的使用方法如下: firefly@firefly:~/GTISDK/Tools/image_tool$ python2 gtiConvtImage2BGR_plannar.py Beagle-On-White.jpg 224 Beagle-On-White.bin 其转换结果为Beagle-On-White.bin,使用liteSample进行分类可执行以下操作 : firefly@firefly:~/GTISDK/Tools/image_tool$ cd ~/GTISDK/Bin/Linux/aarch64 firefly@firefly:~/GTISDK/Bin/Linux/aarch64$ ./liteSample -i ../../../Tools/image_tool/Beagle-On-White.bin 2018-11-16的固件默认带有使用摄像头获取图片的预编译例程, 运行此例程需要图形界面和摄像头,请连接显示器和摄像头后在开发板中操作。 可通过以下操作进行运行测试: firefly@firefly:~$ cd ~/ncc_demo firefly@firefly:~/ncc_demo$ sudo ./run.sh 1 2019-01-27的固件内置示例为SSD,通过以下操作进行运行测试: firefly@firefly:~$ cd ~/ncc_demo/ssd firefly@firefly:~/ncc_demo/ssd$ sudo ./ssdSample