今天,心仪的板子终于到了,作为一个外行来说,既有对板子开发的期待,又有对自己技术的担忧。为了记录一下自己的开发过程,同时也是自己的成长过程,特地开了个专栏,我知道这将是一个漫长的过程,我会不断的更新,同时也对自己说一句:青春不负,韶华不锈,岁月不欺
话不多说,看一下今天收到的板子:

对于这个开发板,我这边是分模块进行学习和开发的:
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模块 VCC TTL的电源电压
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主机 终端中输入ipconfig IP地址:169.154.1.155 子网掩码:255.255.255.0
虚拟机 终端中输入ifconfig IP地址:169.154.1.156 子网掩码:255.255.255.0
开发板 终端中输入ifconfig IP地址: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编译环境的配置,希望不会太难吧!

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

  1. Linux系统下海康工业相机MVS二次开发-Python

    文章目录 Linux系统下海康工业相机MVS二次开发-Python Linux系统下海康工业相机MVS二次开发-Python 环境:树莓派 Ubuntu系统 编程环境:Python3.7 Node(忘 ...

  2. linux ctg重装,Linux 系统中 CTG 的安装, 应用程序开发以及调试

    Linux 系统中 CTG 的安装, 应用程序开发以及调试 准备 1)CICS Transaction Gateway for Multiplatforms, CICS Transaction Gat ...

  3. 编译linux系统到开发板,Linux系统有关交叉编译和移植到6410开发板上的简单过程...

    在进行移植之前,要检查一下目标机(这里指6410开发板)与宿主机之间的接线问题,即串口线.网线是否正确连接,目标机的电源是否插好!在接线问题解决后,才能保证交叉编译正常进行! 个人理解,移植的主要思想 ...

  4. linux开源开发板 软硬件资料,LeMaker Guitar开源开发板安装系统镜像、Linux 系统快速指南 | 乐美客开源开发板社区...

    LeMaker Guitar快速入门 1.需要的配件 MicroSD卡 建议使用4GB或更大的10速MicroSD卡, 建议购买8GB 闪迪SD卡. 显示器和连接线 HDMI或DVI或VGA接口的显示 ...

  5. linux系统下docker搭建vue前端项目开发运行环境详解

    1. 初衷 最近做了几个前后端项目,在前后端项目链条的时候,发现在windows系统下安装前端发过来的vue项目的依赖的时候各种报错, npm install一直无法安装,但是我在linux系统下面安 ...

  6. linux系统出现gnome进程卡死,在Linux系统上修复损坏的Gnome登录屏幕

    本文介绍在Linux操作系统上修复损坏的Gnome登录屏幕的方法,请注意,无需使用Gnome Shell桌面环境即可利用此修复程序,所需要的只是你使用的是相对较新版本的Gnome显示管理器(登录屏幕) ...

  7. Linux系统下,永久修改海思开发板的IP地址

    问题描述: 给开发板需要重新设置下IP地址,并永久生效. 解决步骤: 先看下开发板当前的IP,使用命令:ifconfig 3519AV100 ~ # ifconfig eth0 Link encap: ...

  8. linux下拒绝用户登录,Linux系统用户管理之禁止用户登录

    一.问题描述 今天在CentOS上切换用户的时候提示This account is currently not available su elasticsearch This account is c ...

  9. 嵌入式Linux(5):驱动开发网络调试驱动设备的Linux系统移植

    驱动开发之网络调试驱动设备的Linux系统移植 1.Uboot移植到开发板 uboot移植 2.开发板网络通讯 nfs命令 tftp命令 3.Linux移植到开发板 4.BusyBox 构建根文件系统 ...

最新文章

  1. 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
  2. css自动限制图片大小
  3. 【重温基础】7.时间对象
  4. STM32开发 -- CRC校验码
  5. (一个)AngularJS获取贴纸Hello World
  6. 【Java学习笔记之十八】Javadoc注释的用法
  7. adb devices 里面有很多 emulator-XXXX的解决方法
  8. docker 中安装 mongodb
  9. java中max函数blog_感受 lambda 之美!
  10. Javascript实现类似C#类的封装
  11. 【bzoj2588/P2633】count on a tree —— LCA + 主席树
  12. AD22如何添加元器件库
  13. 下载Android源码详细过程记录
  14. lotus notes 闪退_win10系统Lotus notes邮箱闪退的恢复办法
  15. Elite South Korean of an Elite Education(译文)
  16. 用安卓手机搭建一个可用渗透测试环境/安卓手机搭建linux环境
  17. 基于web的员工信息管理系统
  18. 图像分割——Multi-Scale and Pyramid Network Based Models( PSPN)理解和代码分析
  19. echarts树图修改连线样式颜色,树的形状曲线和折线,树图边的曲度
  20. AtCoder Beginner Contest 272「A」「B」「C」「D bfs」「E 思维」

热门文章

  1. 【Unity3D】Inspector界面属性显隐控制(条件控制)
  2. 机器学习——糖尿病预测
  3. php万国码,如何认识编码
  4. Redis(二)冰叔带你了解Redis-哨兵模式和高可用集群解析
  5. SpringMVC使用域对象共享数据
  6. Android系统框架
  7. VC里面的Error spawning link.exe 或者cl.exe
  8. 关于【Stable-Diffusion WEBUI】生成全身图:插件解决面部崩坏问题
  9. H5在iphone移动端如何实现真机调试
  10. 用Python+OpenCV+Yolov5+PyTorch+PyQt开发的车牌识别软件(包含训练数据)