第五章 嵌入式Linux应用开发基础(1)

早过忘川 提交于 2020-03-08 13:02:41

5.1快速入门总体介绍

参考视频P38,截取了2张图。

图5.1快速入门学习内容​​​​​

 

图5.2快速入门路线

    到这里初学者路线在线wiki结束了,后面的视频每一节都对应一个讲课文档,先看下讲课文档,然后在参考在线wiki,完全开发手册,https://book.100ask.org/index.html

5.2HelloWorld 背后没那么简单

    P39时长18:31,但是讲了好多内容,需要前期准备,按照视频操作,每1s都包含信息量,之前看一下视频一般都要1.25的倍速,现在看韦老师视频得慢速看,要不然跟不上节奏。

    先把准备工作做了,Ubuntu和开发板互ping、配置NFS服务、配置交叉编译工具。

5.3Win10、Ubuntu和开发板互ping

    使用串口连接开发板和PC,打开MobaXterm,启动开发板,具体可以参见3.2章节。

    先看下Ubuntu的ip,ifconfig

图5.1 Ubuntu IP

使用网线一端连接路由器,一端连接开发板网口,板子上有2个网口,应该都可以的,查看下开发板的ip,如图5.2。

图5.2 板子IP

验证下开发板和Ubuntu是否连通,ping 192.168.1.5,看到图5.3中板子和Ubuntu在传输数据,说明已经互通,Ctrl+C退出。 

图5.3 板子和Ubuntu互通

理顺了一下三者之间的网络连接情况,图5.4,实现三者互ping,注意ip和上面截图不一样。 

图5.4 三者互ping

 

5.4配置及挂载NFS服务

     NFS 是Network File System的缩写,即网络文件系统假如有三台机器A、B、C,它们需要访问同一个目录,目录中都是图片,传统的做法是把这些图片分别放到A、B、C。但是使用NFS只需要放到A上,然后A共享给B和C即可。访问的时候,B和C是通过网络的方式去访问A上的那个目录的(来自网络)。 参考高级手册4.2.2安装NFS服务,如图5.5。

图5.5安装NFS服务

     将/home/book/nfs_rootfs文件夹和开发板上的/mnt文件夹关联起来,执行如下命令,IP根据自己的设置。

mount -t nfs -o nolock,vers=3 192.168.1.5:/home/book/nfs_rootfs /mnt

    到这里NFS服务配置结束,看着挺简单的中间出现了几个小问题,很折腾人的小问题,因为是新手,所以先自己折腾半天,在群里一问,立马大佬给出解决方案,很快就解决了,所以还是要多问。

5.4.1问题及解决

1.命令行不换行问题,在输入mount命令时出现了覆盖行首字符的问题,google一下有解决方案,不过还是群里问了一下,vi /etc/profile弹出图5.6内容,把倒数第2行改为:

PS1='\[\e[0;32m\][\u@\h:\w]\$ \[\e[m\]'
图5.6 profile文件

2.串口不识别问题,如果先插串口USB再开虚拟机,就可以识别;如果先开虚拟机,再查串口USB,即使选了连接主机也还是识别不了串口。先打开虚拟机再插USB后,会弹出图5.7选择界面,我都是默认选择“确定”,但是这样USB会默认连接到虚拟机上,而win10上就没法感知串口,需要把串口和虚拟机断开。

图5.6 USB连接选择

    虚拟机菜单栏-Player-可移动设备-Cygnal……-点击“断开连接(连接主机)”,就可以了。第一次连接好串口之后尽量不要去断开,省得麻烦。

图5.8断开USB和虚拟机

5.5GCC编译hello.c

    把hello.c放到Ubuntu中,gcc -o hello hello.c生成hello可执行文件,在Ubuntu中是可以执行的,打印出Hello,World!

    将hello程序下载到开发板上执行,./hello提示不存在,如图5.9,是因为Ubuntu 自带的 GCC 编译器是针对 X86 架构的,因此只能编译在X86架构CPU上运行的程序。如果想要编译在 ARM上运行的程序就需要针对 ARM 的 GCC 编译器,也就是交叉编译器!

图5.9 程序无法执行

下一步就是安装交叉编译器……

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!