使用嵌入式板卡能执行很多有趣的功能,比如物体识别、控制家用电器工作啦,在愉快的码代码之前,有些略显乏味的准备工作要做:IDE、交叉编译工具、NFS,本文将一些细节做汇总,帮助编程人员快速翻篇。
前提:
0. 你有一块畅维通达的cheetah板卡(
Cheetah A64 安卓6/ubunt Linux人工智能AI板卡V1.2item.taobao.com);
- PC机上,你已经准备好了Linux系统,本文使用虚拟机,ubuntu12.02;
- 在cheetah主板上已经安装了ubuntu16.04,接入PC所在的同一个局域网。
一.安装Eclipse:
sudo apt-get install eclipse-platform
sudo apt-get install eclipse-cdt
然后在命令行输入eclipse即可启动,初次启动会要求进行设置,默认即可。
建立一个C工程:
File->New->Project,弹窗中选择C Project,在下一个弹窗输入工程名称,本例为test,选择Empty Project和Cross GCC后点击完成:
为工程新建源码文档,File->New->Source File,弹窗中填写文件名,编辑一段测试代码。
二.交叉编译工具及在Eclipse中的配置:
在主机上编写代码、编译为ARM设备上可运行的二进制文件,需要用到交叉编译器,本文选择Linaro GCC,版本gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf,适合cheetah的64位系统,下载地址https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/,注意不要选择带i686字样的32位编译器。解压、拷贝到虚拟机中备用,本例中编译器位于/home/chvda下。
回到Eclipse中,选中C工程,点击Project->Properties,设置Setting:
编译点击Project->Build Project。
默认将在~/workspace/test/Debug下生成二进制文件。
三.NFS工具:
到这里,你可以用任何一种文件传输工具,如WinSCP将上文的二进制文件拷贝到cheetah中运行,然而一个更高效的方式是使用NFS服务。
NFS将PC端的某个文件路径共享给cheetah,然后cheetah将可以直接通过网络运行共享目录下的程序。这在需要频繁修改代码、测试运行效果的开发过程里尤为有用。
首先,在PC端Linux安装sudo apt-get install nfs-kernel-server 和apt-get install nfs-common 。
编辑脚本,添加NFS共享目录,本文将
/home/chvda/workspace/test/Debug/选为共享地址:
sudo vim /etc/exports ,
在文件最末一行添加/home/chvda/workspace/test/Debug/ *(rw,sync,no_root_squash)
执行:
sudo mkdir /home/chvda/workspace/test/Debug/
sudo chmod -R 777 /home/chvda/workspace/test/Debug/
sudo chown –R nobody /home/chvda/workspace/test/Debug/ #(会报错无该用户,没关系)。
然后,在cheetah上(预先安装apt-get install nfs-kernel-server nfs-common)挂载Linux主机的共享目录到/mnt目录下,下文的192.168.0.118是PC端的IP地址,需要根据自身情况、查询ifconfig修改:
mount -t nfs 192.168.0.118:/home/chvda/workspace/test/Debug/ /mnt -o nolock
上述命令将PC端的地址共享到了cheetah的/mnt目录下了,测试效果如下:
在cheetah命令行依次输入命令cd /mnt和ls,应能看到交叉编译成的二进制文件test。
至此,可以运行该二进制文件了:./test。
四.修改cheetah的时区:
为了能直观查看文件的修改时间,建议修改一下时区。
sudo dpkg-reconfigure tzdata
选择亚洲-上海