系统之间文件共享
想要实现两个不同的系统之间实现文件共享,最简单的一种方案就是设置VMware软件的共享文件夹,利用共享文件夹可以实现linux系统和windows系统之间的文件共享,这样就可以实现在windows系统上编辑程序,然后在linux系统下编译程序以及运行程序,尤其是当使用开发板的时候,这种方案非常好用。
点击VMware菜单栏的“虚拟机”,然后点击“设置”,点击“选项”,点击“共享文件夹”
设置主机路径(windows系统的路径,),设置名称(linux系统的文件夹的名称,英文)
然后打开Terminal终端,输入命令cd /mnt/hgfs/ 然后按下回车,输入ls命令查看
可以看到share文件夹就是设置好的共享文件夹的名称,切换到该目录即可实现共享。
ARM开发板的使用
开发板资源说明
GEC6818 开发平台,核心板采用 10 层板工艺设计,确保稳定可靠,可以批量用于平板电脑,车机,学习机,POS 机,游戏机,行业监控等多种领域。该平台搭载三星 Cortex-A53 系列高性能八核处理器 S5P6818,最高主频高达 1.4GHz,可应用于嵌入式 Linux 和 Android 等操作系统的驱动、应用开发。开发板留有丰富的外设,支持千兆以太网、板载 LVDS 接口、MIPI 接口、USB 接口等。
开发板使用说明
使用5V电源适配器进行供电,通过九针串口数据线或者网线进行数据通信,连接电源线和串口数据线后,拨动电源开关上电开机。
一般而言,嵌入式开发板使用串口来监控后台。可以使用串口线连接开发板和电脑,对于没有串口的笔记本电脑来说,一般还需要一根USB转串口线。
进行硬件接线,安装USB转串口线的CH340驱动,检查驱动是否安装成功,如下所示:
打开secureCRT软件之后,点击“快速连接”,并选择“serial”协议,进行配置,如下:
注意:连接好串口通信线,通过“设备管理器”确定通信端口,该端口是变化的,不同主机是不同的,需要每次连接前确定下。
配置完成后,点击“连接”,如果软件左上角出现绿色对勾,说明端口选择正确,如下:
如果端口正确,则打开开发板的电源开关(往上拨),等待系统启动,此时不要按键盘!
注意:如果启动的过程中卡在某一行不动,原因是开发板启动后会自动运行一个应用程序,该应用程序占用了shell终端,此时只需要按快捷键Ctrl+C就可以强制结束进程,此时可以顺利使用shell终端。
由于开发板板载的是Linux系统,所以可以通过secureCRT调试工具发送shell命令,如:
点击secureCRT菜单栏“选项”->“会话选项”->“外观”,修改字体大小和字符编码:
开发板传输文件
注意:开发板的内存空间较小,所以开发板中的Linux系统是经过裁剪的,也就是开发板的Linux系统不具备程序的编辑能力和程序的编译能力,只具有程序的运行能力。
所以大家需要在电脑的Linux系统中去完成程序的编辑和程序的编译,然后把生成的可执行文件传输到开发板,在开发板中运行,这里可以使用多种方案实现文件的传输:shell命令、U盘、网线。
由于开发板进入linux系统之后直接就是超级用户,用户拥有开发板系统的一切权限,所以大家在操作根目录的时候要格外小心,为了避免一些误操作带来系统的奔溃,所以必须在家目录创建一个目录用以存放个人所有的项目文件,比如workspace目录。
挂载内存
由于开发板默认使用的是根文件系统的内存空间,根文件系统的内存空间有限,所以随着时间的推移,GEC6818开发板的内存空间会出现使用耗尽的问题,为了避免出现用户文件无法传输至开发板的Linux系统的问题,此时可以通过把硬盘剩余的空间挂在到根文件系统中进行使用。
基本使用格式
[root@GEC6818 /]# df -h
开发板中的存储IC是8G大小,分为了若干个扇区,所以用户可以通过命令查看分区情况:
基本使用格式
[root@GEC6818 /]# cat /proc/partitions
- 需要格式化暂未被使用的硬盘分区mmcblk0p7,避免该分区中有一些不相干的文件内容
基本使用格式
[root@GEC6818 /]# mkfs.vfat /dev/mmcblk0p7
- 使用mount命令把该分区挂载到指定目录下,一般建议挂载到用户自己的工作目录中
基本使用格式
[root@GEC6818 /]# mount -t vfat /dev/mmcblk0p7 /workspace
检测是否挂载成功,分区挂载指令是单次有效的,所以需要把挂载指令写入自启脚本中
基本使用格式
[root@GEC6818 /]# df -h
打开开发板配置文件,该文件是开机自动执行,所以利用vi工具在文件末尾追加内容
基本使用格式
[root@GEC6818 /]# vi /etc/profile
重启开发板使配置文件生效 ,可以使用软重启 输入命令 :reboot 等待重启完成即可
基本使用格式
[root@GEC6818 /]# reboot
指令传输
切换到开发板的个人工作路径,然后在secureCRT的shell终端中输入命令:rx 文件名
点击软件菜单栏的“传输”,然后点击“发送Xmodem”,选择windows系统中的文件:
等待文件发送完成即可,可以通过进度条来检查文件是否发送完成,具体操作如下所示:
注意:并且rx命令也无法一次传输多个文件,并且rx命令的传输速度较慢,为了解决该问题,可以把rz命令传输到开发板的 /bin 目录下,这样可以使用rz命令一次传输多个文件,如下:
在secureCRT的shell终端中输入命令:rx rz,按下回车,然后找到rz命令所在文件夹
等待文件传输完成,由于该文件是一个shell命令,所以需要修改权限: chmod 777 rz
由于系统shell命令的环境变量设置在/bin目录下,所以需要把rz命令移动到 /bin目录
测试rz命令是否正常,在secureCRT的shell终端中输入命令:rz 然后按下回车,如:
注意:可修改secureCRT软件下载文件的路径,固定每次弹出窗口的路径位置,快速定位下载文件,如下所示
网络传输
在开发板和计算机处于同一个局域网的情况下,采用网口的方式来传输文件是最高效的一种方式(即通过网线把主机的文件传输到开发板上),此时可以利用tftp工具实现,tftp的全称是 tiny FTP,此工具专用于文件传输,其所为tiny意指匿名传输,是一种轻量级的FTP工具。
用一个网线的一端连接到开发板的网口,网线的另一端连接到路由器的一端,如下所示:
注意:上图这种方案适合有线连接,也就是计算机通过有线连接到网络,开发板也通过有线连接到网络,此时需要确保开发板和计算机处于同一个网段,如果不在同一个网段,则需要配置开发板的IP地址,如下:
进入开发板的终端,在终端中输入shell命令: ifconfig 来查看当前开发板的网络配置!
在终端输入shell命令: ifconfig eth0 192.168.xxx.xxx,xxx指的是用户拥有的IP地址!
注意:配置的开发板的IP地址是单次有效的,所以需要把该指令写入到开发板的开机自启动的脚本文件,开发板linux系统中开机自启动的脚本文件的路径是 /etc/profile,可以使用vi编辑器打开该脚本,并在脚本文件的末尾写入该指令。
配置完成后,重启开发板,然后在终端重新输入指令: ifconfig 检查开发板的IP地址
检查完成后,测试开发板和计算机是否网络处于连通状态,指令: ping 计算机IP地址
如果开发板和计算机的网络连通,则打开tftpd32.exe应用程序,然后进行配置,如下:
注意:tftp工具不要关闭,只需要最小化即可,另外,如果文件的路径更改,则需要修改tftp的文件路径
配置好tftp软件之后,根据实际情况在开发板的终端中输入下载文件和上传文件的命令
把计算机的文件下载到开发板上(IP地址为服务器IP 也就是计算机的IP地址)
[root@root:~]# tftp -g 192.168.xxx.xxx -r xxx xxx指的是文件名
把开发板的文件上传到计算机中(IP地址为服务器IP 也就是计算机的IP地址)
[root@root:~]# tftp -p 192.168.xxx.xxx -r xxx xxx指的是文件名
交叉编译工具安装
交叉编译器就是在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码。由于开发板的硬件平台是ARM,但是开发板并不具备编译程序的能力,所以需要在计算机中的linux系统对程序进行编译。
但是计算机的硬件平台是X86_64,所以并不能使用gcc编译器生成在ARM平台运行的可执行程序,所以就需要在计算机的linux系统中安装交叉编译工具,这样就可以在计算机的linux系统中交叉编译源程序并生成可以在ARM平台运行的可执行文件。
链接: https://pan.baidu.com/s/1IS7UzGABw7fLxGLct5EcWg 提取码: 47ms
把交叉编译工具的压缩包拷贝到设置好的共享文件夹,并从共享文件夹拷贝到家目录!
注意不可以在共享文件夹中对该压缩包进行解压,因为共享文件夹是挂载到linux系统,不属于linux系统。
对压缩包进行解压,输入命令:xz --decompress arm-linux-gnueabi-5.4.0.tar.xz 如下:
利用超级用户的权限对归档文件进行释放,并且直接释放到家目录下,操作如下所示:
解压成功后可以看到在/home/xxx目录下就多了一个usr文件夹,此时要配置环境变量
gec@ubuntu:~$ cd /home/gec/usr/local/arm/5.4.0/usr/bin //gec是用户名,需要修改!
gec@ubuntu:~$ echo "export PATH=/home/gec/usr/local/arm/5.4.0/usr/bin:$PATH" >> ~/.bashrc
gec@ubuntu:~$ source ~/.bashrc //让配置文件立即生效
配置好环境变量之后,测试交叉编译工具是否正常,可以输入命令arm-linux-gcc -v查看
如果可以查看交叉编译工具的版本,则编写一个源文件,利用交叉编译工具进行编译:
注意如果利用交叉编译命令arm-linux-gcc对源文件进行编译时遇到以下错误情况,如下图
/usr/local/arm/5.4.0/usr/bin/../libexec/gcc/arm-none-linux-gnueabi/5.4.0/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory
原因是加载共享库时出错:libmpfr.so.4:无法打开共享对象文件:没有这样的文件或目录
执行以下代码即可:
sudo ln -s /usr/lib/x86_64-linux-gnu/libmpfr.so.6 /usr/lib/x86_64-linux-gnu/libmpfr.so.4
可以看到,使用不同的编译器可以对同一个源文件进行编译,只不过生成的可执行文件的执行平台不同,可执行文件hello_arm只能在ARM平台运行(开发板),可执行文件hello_x86只能在X86平台运行(计算机)。
把生成的在ARM平台运行的可执行文件发送到开发板的个人路径,输入:rx demo_arm
发送到开发板的可执行文件默认没有权限执行,原因是因为虚拟机的linux系统使用的是普通用户,而开发板中的linux系统是超级用户,所以文件权限不一致,导致可执行文件无法运行,此时只需要修改开发板中的可执行文件的权限为777即可,777是最高权限。