Skip to content Skip to footer

EasyARM-i.MX280A—Linux系统开发板(开发日记1-登录开发板)

今天,心仪的板子终于到了,作为一个外行来说,既有对板子开发的期待,又有对自己技术的担忧。为了记录一下自己的开发过程,同时也是自己的成长过程,特地开了个专栏,我知道这将是一个漫长的过程,我会不断的更新,同时也对自己说一句:青春不负,韶华不锈,岁月不欺 话不多说,看一下今天收到的板子: 对于这个开发板,我这边是分模块进行学习和开发的: 1.首先是先将这个板子能够启动和配置,对里面的功能以及模块进行研究学习,使其能够正常工作和对外开发; 2.对各个接口协议,规范以及软件层面进行更深入的学习; 3.硬件方面,对电路设计以及走势进行学习和了解; 由于开发板涉及的面比较广,只能采用广度优先,再深度研究的学习方式,先学会用,再了解为什么 既然学习思路已经确定,那么我们就开始我们的嵌入式开发:

登录嵌入式开发板

由于板子上没有提及IP地址,所以不太可能直接通过IP地址进行访问。网上查了查,终于找到了此开发板的开发手册:EasyARM-i.MX280A 看了手册之后,才发现要用串口线进行PC和开发板之间的通信,买来的开发板是不带串口线的,需要自己在网上买一个,这个串口线的类型需要说一下,我们收到开发板的时候,除了开发板之外,还有一个电平信号的转换模块,如图: 这是一个RS232电平信号与TTL电平信号之间的转换模块,我们开发板输出的TTL信号,经过此模块转化为RS232信号,现在流行的PC一般都是USB接口,所以如果实现PC与开发板之间通信,还需一个USB信号与RS232信号之间的串口线,RS232-TTL模块中RS232端是母端,我们所买的USB-RS232串口线对应的一端需要是公端,至此串口线已确定,可以下单了。 收到之后,大概就是上面这样子。串口线有了,我们开始连接我们PC与开发板:

开发板与RS232-TTL模块连接: RS232-TTL模块的接口如图所示:

模块接口作用RS232-TTL模块VCCTTL的电源电压RS232-TTL模块TXD用来发送数据RS232-TTL模块RXD用来接收数据RS232-TTL模块GND地线

这四个接口与开发板的对应接口关系: VCC -3.3V、TXD-DUTX、RXD-DURX、GND-GND 在收到开发板时,我们还会收到四根杜邦线,按照对应关系,将接口接好,此时开发板与RS232-TTL模块已经接通好。

RS232-TTL模块与PC连接: 用我们买回的USB-RS232串口线将两端接好,此时就形成了一个开发板—RS232-TTL模块—PC的一个数据链路,实现连接。

下一步是对我们编程环境的配置,由于我们的开发板是Linux系统的,为了更熟悉开发板的环境,我们在自己的PC中,最好还是安装Linux系统。由于我的电脑是的Windows系统的,如果直接安装双系统可能会比较卡,而且我也不希望把我的Windows系统换成Linux,我这里是采用了安装虚拟机的方式。 下载虚拟机安装包:Vmware 安装完成之后,第一次登录Vmware,会显示只能使用30天,需要密钥才能变为永久。大家都是白嫖,你们懂的,问度娘就能解决。

新建虚拟机: 选择新建虚拟机->典型->稍后安装操作系统->客户机操作系统:Linux;版本:Ubuntu 64位->虚拟机名称和位置根据自己情况选择->最大磁盘给35G->点击完成,会看到Vmware的左侧多了个虚拟机系统

虚拟机配置: 选择虚拟机->设置,会有有关虚拟机的一些配置信息,说一下比较重要的几个配置: CD/DVD(SATA) >>> 操作系统镜像文件,下载并指定Ubuntu,决定虚拟机使用什么操作系统 网络适配器 >>> 桥接模式,决定虚拟机的网卡通信 USB控制器 >>>USB3.1(显示所有USB输入设备),决定虚拟机能不能检测到开发板的串口信号

进入虚拟机: 设置用户密码,进入,按’win‘进入搜索界面,输入“Terminal”,进入终端

查看是否检测到串口设备: 通过USB给开发板上电,连接好开发板和RS232-TTL模块,将USB-RS232串口线两端分别与RS232-TTL模块和PC连接,PC中会提示,连接到哪,选择虚拟机以及对应的虚拟机系统Ubuntu; Linux系统中对于外接设备的管理是在/dev/的目录文件下,由于串口是PC通过USB拓展出来的,一般此设备的文件名为ttyUSB0或者ttyUSB1,我们可以cd到/dev/的目录下看一下,有没有这样的一个文件,我们会发现其目录下,多了一个ttyUSB0的文件,表明虚拟机已经成功检测到开发板

安装串口终端minicom(可以让我们进入开发板终端): 在Terminal中输入:sudo apt-get install minicom,进行安装 安装完成后,对minicom进行配置,输入:sudo minicom -s,进入minicom的配置界面 选择"Serial port setup",回车键进入 将里面的A,E,F项进行设置,直接按键盘的字母(A,E,F)即可对相应的项进行设置,设置内容为:A:/dev/ttyUSB0 ;E:115200 8N1;F:NO,设置好,回车键退出 选择“Save setup as dfl”,保存并退出

登录minicom 输入:sudo minicom ,进入minicom(Ctrl + A再按下Z键可以查看帮助, Ctrl + A再按下X键可以退出) 然后按动开发板的复位键,会看到在minicom中,有相应系统启动的消息提示,等其运行完,会有开发板的登录界面,输入用户:root,密码:root,即可进入开发板的终端

查看开发板的相应信息: 查看系统内核版本:cat /proc/version 查看内存使用情况:free 查看磁盘使用情况:df -m 查看CPU信息:cat /proc/cpuinfo 查看IP地址以及子网掩码:sudo ifconfig etho

实现PC主机,虚拟机,开发板之间的两两通信

查看三者的IP地址与子网掩码:

设备名称查看方式地址详情PC主机终端中输入ipconfigIP地址:169.154.1.155 子网掩码:255.255.255.0虚拟机终端中输入ifconfigIP地址:169.154.1.156 子网掩码:255.255.255.0开发板终端中输入ifconfigIP地址:125.65.220.156 子网掩码:255.255.255.0

我们实现三者之间的通信,需要保证这三个IP在同一网段中才可以,除此之外,还有一个额外的条件,就是需要保证虚拟机可以上网,不然我们的一些依赖包均无法下载。综上考虑,我们选用无线网段。 由于虚拟机和PC主机之间是以桥接的方式进行网络适配,如果我们连上路由,系统会默认选用无线网段,所以PC与虚拟机之间是既可以通信,又可以上网的。现在我们是要把开发板加入进去,就要保证他们处于同一网段中。如何确认三者的网段是否相同? 网段的计算是将IP地址与子网掩码做按位与运算(先转化为二进制,同为1则为1) PC主机转化为二进制:10101001 10011010 00000001 10011011 虚拟机转化为二进制 :10101001 10011010 00000001 10011100 开发板转化为二进制 : 01111101 01000001 11011100 10011100 子网掩码转化为二进制: 11111111 11111111 11111111 00000000 计算得相应网段: PC网段:169.154.1.0 虚拟机网段:169.154.1.0 开发板网段:125.65.220.0

可以看出开发板与另外两个不在同一网段中,在开发板终端中 输入:ifconfig eth0 169.154.1.220 将ip改为169.154.1.220 输入:ifconfig eth0 netmask 255.255.255.0 设置子网掩码为:255.255.255.0 输入:ifconfig查看是否更改成功,更改完成后,三者即在同一网段。

更改开机自启动脚本 我们上面虽然更改了开发板的IP地址,但我们会发现,每当开发板复位或者上电后,开发板的IP就会恢复至之前的模样,我们上述所作的更改均失效。为了解决这个问题,我们需要把上面的IP设置写到开发板的自启动脚本里,使其开机后自动进行配置。在Linux中,涉及到配置的文件一般都在/etc/目录下,切换到/etc/目录下(cd /etc/),会有一个init.d的文件,有关的开机自启动脚本均在此文件里,进入查看。里面有很多脚本,大家可以vi一下,进入查看各个脚本的信息。有关IP的设置是在S40network脚本中,vi进入其中,会发现此文件是read-only形式,需要重新挂载一下,回到开发板终端,输入命令:mount -o remount rw / ,使根目录下的文件均可读可写,然后再次进入S40network文件,翻到最后,将代码更改为: ifconfig eth0 “169.154.1.220” netmask 255.255.255.0 设置IP和子网掩码 ifconfig eth0 up 启动网卡 route add default gw 169.154.1.1 设置网关 :wq保存并退出,重新启动开发板,输入ifconfig eth0,发现IP已经更改,表明我们的脚本正常运行

通信的链路图 在这里说一下开发板以太网接口的连接,之前我是将开发板以太网接口和PC进行连接的,但最后发现一个问题,就是通信可行,但是不能联网。因为在日常开发中,一些必要的安装包必须通过联网才能下载,所以之后我改变了思路,选择无线网段作为三者的通信网段,这样就既可以通信,又能满足联网的需求。实际操作过程,就是把开发板和路由器通过网线连接起来。

确认三者之间是否可以通信 目前为止我们已经完成: 1.数据链路的连接; 2.通过开发板自启动脚本完成三者的网段统一; 接下来,我们检查一下是否可以通信,在通信之前,需要先将PC的防火墙关闭。

终端命令作用虚拟机终端ping 169.154.1.155连接PC虚拟机终端ping 169.154.1.220连接开发板开发板终端ping 169.154.1.155连接PC开发板终端ping 169.154.1.156连接虚拟机windows终端ping 169.154.1.156连接虚拟机windows终端ping 169.154.1.220连接开发板

通过测试,我们实现了三者之间的两两通信,且能够联网

在虚拟机中安装SSH(如果是windows,安装putty) 在虚拟机终端中输入:sudo apt-get install openssh-server,安装完成 在终端中输入:ssh root@169.154.1.220,远程登录开发板,输入密码:root,接口进入开发板的终端。至此我们就可将USB-RS232串口线,RS232-TTL信号转化模块撤掉了,只需将开发板与路由器网线连接,之后上电,即可通过ssh的一条命令实现远程连接。 经过以上种种过程,我们成功将开发板的登录操作简化为: 1.将开发板与路由器连接; 2.USB口给开发板上电; 3.通过SSH登录开发板; 至此,开发的最基本条件,登录开发板就算完成了,后续是对虚拟机Ubuntu编译环境的配置,希望不会太难吧!

Copyright © 2088 我的世界杯_瑞奇马丁世界杯主题曲 - msdc8.com All Rights Reserved.
友情链接