本文章旨在记录我学习过程还有碰到的坑,其实大部分操作在海思提供的说明文档都有。
本人先前项目一直使用RK3399芯片进行开发,由于新的项目与安防监控方向有联系,查找一番看到海思芯片在安防方面可能是比较适合的。最终购入3516尝试开发,同时还有神经网络加速引擎,处理能力达1Tops,可以尝试人脸、车牌等识别。
通常都是Windows工作台+Linux服务器+开发板,像我这种入门选手就直接虚拟机了。
软件:Windows上SecureCRT+Vmware+ubuntu18.03
硬件 :开发板+网络尾线+网线+电源+usb转串
波特率设置 115200 其他就憋动了。
然后连接
上电后可以看到串口信息,上电后输入任意键可以进入U-BOOT。但由于这块板在发出时已经烧写好u-boot、内核、文件系统,所以日后再来一整个烧写的流程。
将电脑IP置于与开发板同一网段后,可以通过ITTP_STEAM查看是否工作正常
配置开发板IP后,发现每次开关机都会回到192.168.1.168,遂查看开机脚本,位置在/etc/init.d/rcS
看到厂家预先设置了IP,删掉了语句,保存,完事。
接着配置Telnet,输入telnetd&就可以启动telnet服务了,可以将语句添加到刚刚访问的rcS文件里,以后开机就不需要先串口开telnet了。
将SDK包内Hi3516CV500_SDK_V2.0.0.1.tgz解压,我尝试解压文件,但由于其中两个文件夹中各类内核和文件系统文件名太长了,报错无法解压,就单独将如图四个文件/文件夹解压出来。
进入已解压包的路径,运行./sdk.unpack。
此时遇到了一个坑 source: not found
一看是shell脚本没有用source加载到common.sh
查找到了方法 输入
ls -l `which sh`
获得
lrwxrwxrwx 1 root root 4 Nov 5 15:38 /bin/sh -> dash
原来是系统用了dash来解析shell脚本 解决问题只需
sudo dpkg-reconfigure dash
选择NO 这样就会交回给bash解析shell脚本了lrwxrwxrwx 1 root root 4 Nov 5 15:44 /bin/sh -> bash
由于嵌入式单板的资源有限,不能在单板上运行开发和调试工具,通常需要交叉编译调试的方式进行开发和调试,即“宿主机+目标机”的形式,我们现在的连接方式就通过网口来连接。
宿主机和目标机的处理器通常不是同一架构,因此我们需要在宿主机上建立一个适用于目标机的交叉编译环境。从宿主机上编译-连接-定位后可以获得适用于目标机的二进制可执行文件。
解压并运行arm-himix200-linux.install文件即可完成安装,一定要有sudo或者root权限
执行 source ,安装交叉编译器的脚本配置的环境变量就可以生效了,或者重新登录
#解压工具链
tar -xvf arm-himix200-linux.tgz
#安装工具链
chomod +x arm-himix200-linux.install
sudo ./arm-himix200-linux.install
#执行 source
source /etc/profile
完成上述操作后在终端输arm-h 使用Tab自动补全既可看到安装好的编译器
开发过程,推荐使用NFS文件系统作为开发环境,比较省时省力。配置NFS文件系统要先进行一下步骤。
安装NFS服务
sudo apt install nfs-common
修改配置文件
sudo vim /etc/exports
/home/UserName/YourNFSPath *(rw,sync,no_root_squash)
重启NFS服务
sudo /etc/init.d/nfs-kernel-server restart
挂载目录到开发板
mount -t nfs -o nolock -o tcp 192.168.8.168:/home/lin/nfs /nfsroot/