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
兆易创新专利纠纷案胜诉!涉案金额7050万元
全自动超声波清洗机发生器电源
西门子博途:监控呼叫路径
物联网市场总产值将上看939亿美元,车联网是成长最强劲的终端应用
让“教”与“学”更有趣—Hi3531DV200开发板打造教育录播主机方案
firefly NCC S1--Linux SDK软件介绍
印度电视市场销量排名,小米电视营销颇具争议
RVDT位移传感器的工作原理是什么?
以科技之力筑牢数据安全防线,小赢科技再获国家级权威认证
HDMI 1.4收发器在家庭影院和条形组合音箱中的应用
小米正式发布15.6英寸白色青春版笔记本,搭载英特尔第八代酷睿i5处理器
传OPPO、vivo为争客户打架 这些年“兄弟”的明争暗斗
亚马逊手机的失败是置之死地而后生?
编解码一体机:打破传统,引领未来
TDK开发全新的TFM-BLE系列薄膜电源电路电感器
ips屏幕伤眼睛吗_ips和tn屏幕哪个不伤眼
PCB的绝缘绿色油漆剥落是什么原因引起的
汽车系统供电
通过工业智能网关实现船舶岸基供电系统远程监控管理
第三代Ultrabook掀SSD设计革新 NGFF SSD大举出笼