EasyARM-iMX257 linux两年前的笔记
我依然清晰的记得刚拿到Imx283 257的情景,兴奋中充满忧虑,对操作系统的概念只知一二,不知三四!!周立功出品的资料我一直觉得是比较精品的,同样这款iMX283配套的文档资料(v1.04)也是比较经典的,非常适合初学者使用。
作为一个初学者,我愿意把自己学习的经历分享出来,分享出自己对文档的理解和总结,以便自己为日后的学习总结出更好的学习方法,同时也让初学者少走自己走过的弯路,高手不要吐槽,可以指正。
1、关于文档的一、二章
第一章就是一个对283的简介,第二章的是关于在开发板中如何烧写linux系统,如果开发板上已经装载了linux系统,我建议先略过此章节,等学了一段时间之后再回过头来细看此章节。
论坛上有人问:为什么nand flash烧写不成功:
如果按照文档中烧写前准备那样做的:
l 请确认通讯线是否接好,通讯线连接好烧写工具:MfgTool-ZLG界面“正在监控”下会出现“HID-compliantdevice”字样。
l ubootloader.bat最好以管理员身份启动,每次启动都需要对开发板重新上电。
l 重新打开烧写工具。
当看完一二章节之后,先不要着急往下看了,找一本linux书,了解linux的一些基本概念,学一些linux常用的操作命令,再往下看吧。
2、关于文档的第三章
l 串口终端:
首先初学者需要明白,linux系统会有一个终端,开发板既然安装了linux系统,同样它也会有一个终端,叫做串口终端。介绍两个串口终端Xshell和secureCRT,百度下载一下就好了。
Xshell使用简介:
打开→新建→协议选择(SERIAL)→名称(随意输入一个名字)→左侧选择(SERIAL)→选择波特率(115200)和串口端口。
l 网络设置:
网络设置让我花了很长一段时间才搞定的,在此总结一下:
我选择的网线与与电脑直连的方式进行学习的,此种方式下,网络未设置正确时windows本地连接是打叉的。
a) 首先关闭防火墙(必须选择关闭),设置PC机网络:
iP:192.168.2.2
子网掩码:255.255.255.0
默认网关:192.168.2.1
b) 其次设置开发板网络:
root@EasyARM-iMX283~# ifconfig eth0 192.168.2.10 #此为开发板IP
注意:root@EasyARM-iMX283~#是开发板串口终端。
c) 其次设置linux主机网络(即虚拟机linux的):
vmuser@Linux-vmuser:~$sudo ifconfig eth0 192.168.2.15 设置linux主机iP地址。
vmuser@Linux-vmuser:~$ifconfig eth0 查看设置的iP地址
vmuser@Linux-vmuser:~$ifconfig eth0 down 关网卡
vmuser@Linux-vmuser:~$ifconfig eth0 up 开网卡
注意:vmuser@Linux-vmuser:~$是linux主机终端。
l 测试网络连通:
Ping +ip地址测试网络连接
Eg:测试linux主机和开发板的联通性 ping 192.168.2.10
注:该IP是我测试学习用的IP,也可自己设定,只要保证三机(PC机、linux主机、开发板)三个网段在一起,就可以ping通。
总结:以上测试是网线直接连PC机,如果用交换机的话连接的话,会更加简单、稳定。
l 应用程序的开发模式:
对于初学者而言,会比较纠结上了linux操作系统,怎么下载程序进去啊,看来半天文档也不知道怎么下载程序,好尴尬啊。
对我而言,我之前学过51,、AVR、XS128,STM32单片机,总是爱拿单片机的思维来套用,现在想想是多大的错误。iMX283已经装载了操作系统,想想我们的PC机也是装了操作系统,只不过是windows而已,所以对于iMX283的学习开发而言,要清楚它是分许多层的:
a) 上层应用程序的开发(类似于windows中的各种软件)
b) 外设驱动的开发
c) 跨平台移植
d) Bootloader代码分析和移植
e) 以太网烧写工具代码分析与移植
f) BDM/JTAG工具代码的分析与移植
对于应用程序的开发我想说下自己的喜欢的开发模式
开发板中的linux系统是非常精简的,也就意味着它跟真正的linux系统有很大的差距,所以对于一般的应用程序开发,采用在linux主机下开发,用交叉编译器进行编译,再将编译好程序下载到开发板里运行。
a) ssh模式:
在网络设置以后,可以相互ping通,在linux主机中,打开终端输入:
ssh root@192.168.2.10(//192.168.2.10为开发板IP地址),可以以ssh登入开发板,输入密码:root(不显示,输完回车即可)
在linux主机下设置NFS共享目录,并将该目录挂载到开发板中的某个目录下,这样在linux在NFS共享目录下编写的应用程序就可以在开发板中相应目录中找到。
注:如何NFS共享和挂载在文档第四章讲的有哈!
如果想将该应用程序固化(即保存到开发板里),可以用cp 命令保存到开发板目录下即可,同时要记得同步一下掉电才不会丢失。
Eg:root@EasyARM-iMX283 ~# cp hello/opt //保存hello程序到opt目录下
root@EasyARM-iMX283 ~# sync //记得同步操作哦
b) 串口终端模式
其实串口终端模式只不过是在Xshell里登陆开发板的同时,也登陆linux主机终端。也是通过挂载NFS,进而固化程序来实现应用程序的开发。
注意:ssh登陆linux,新建→协议默认(ssh)→名称(随意命名)→主机(linux IP地址),会提示输入linux主机密码,按照提示做即可。
这两种开发的模式只需要在一个工具里打开两个终端窗口就可以实现。省去两种工具里来回切换的麻烦。