我依然清晰的记得刚拿到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主机密码,按照提示做即可。

这两种开发的模式只需要在一个工具里打开两个终端窗口就可以实现。省去两种工具里来回切换的麻烦。

EasyARM-iMX257 linux两年前的笔记的更多相关文章

  1. EasyARM-iMX257 linxu两年前的笔记

    第三章续:简单总结第三章中出现的命令! 1)  root@EasyARM-iMX257 ~# ddif=/dev/zero of=/dev/shm/disk bs=1024 count=10240 d ...

  2. Linux内核分析课程笔记(一)

    linux内核分析课程笔记(一) 冯诺依曼体系结构 冯诺依曼体系结构实际上就是存储程序计算机. 从两个层面来讲: 从硬件的角度来看,冯诺依曼体系结构逻辑上可以抽象成CPU和内存,通过总线相连.CPU上 ...

  3. Linux进程间通信IPC学习笔记之管道

    基础知识: 管道是最初的Unix IPC形式,可追溯到1973年的Unix第3版.使用其应注意两点: 1)没有名字: 2)用于共同祖先间的进程通信: 3)读写操作用read和write函数 #incl ...

  4. Linux防火墙iptables学习笔记(三)iptables命令详解和举例[转载]

     Linux防火墙iptables学习笔记(三)iptables命令详解和举例 2008-10-16 23:45:46 转载 网上看到这个配置讲解得还比较易懂,就转过来了,大家一起看下,希望对您工作能 ...

  5. Linux系统运维笔记(四),CentOS 6.4安装Nginx

    Linux系统运维笔记(四),CentOS 6.4安装Nginx 1,安装编译工具及库文件 yum -y install make zlib zlib-devel gcc-c++ libtool op ...

  6. Linux进程线程学习笔记:运行新程序

    Linux进程线程学习笔记:运行新程序                                         周银辉 在上一篇中我们说到,当启动一个新进程以后,新进程会复制父进程的大部份上下 ...

  7. Linux下iptables学习笔记

    Linux下iptables学习笔记 在Centos7版本之后,防火墙应用已经由从前的iptables转变为firewall这款应用了.但是,当今绝大多数的Linux版本(特别是企业中)还是使用的6. ...

  8. linux 2.6 驱动笔记(一)

    本文作为linux 2.6 驱动笔记,记录环境搭建及linux基本内核模块编译加载. 环境搭建: 硬件:OK6410开发板 目标板操作系统:linux 2.6 交叉编译环境:windows 7 + v ...

  9. Linux进程间通信IPC学习笔记之同步二(SVR4 信号量)

    Linux进程间通信IPC学习笔记之同步二(SVR4 信号量)

随机推荐

  1. Python list列表修改元素

    Python 提供了两种修改列表(list)元素的方法,你可以每次修改单个元素,也可以每次修改一组元素(多个). 修改单个元素 修改单个元素非常简单,直接对元素赋值即可.请看下面的例子: nums = ...

  2. 10.2 Go redis

    10.2 Go redis redis是NoSQL数据, 不是传统的关系型数据库.linux,windows环境皆可安装. https://redis.io http://www.redis.cn r ...

  3. 利用logrotate将mysql log截断

    https://blog.pythian.com/mysql-log-rotation/ 1.授权用户 CREATE USER 'log_rotate'@'localhost' IDENTIFIED ...

  4. Asp.net MVC验证那些事(1)-- 介绍和验证规则使用----[转]--[并修改了部分内容]

    Asp.net MVC验证那些事(1)-- 介绍和验证规则使用 -----原文地址链接 数据的有效性验证,是程序开发中必不可少的环节.这篇文章,我们将用一个实例来说明如何在MVC中使用Validati ...

  5. 201771010128王玉兰《面向对象程序设计(Java)》第十三周学习总结

    第一部分:基础理论知识 1.事件处理基础 事件源(event source):能够产生事件的对象都可 以成为事件源,如文本框.按钮等.一个事件源是一个 能够注册监听器并向监听器发送事件对象的对象. 事 ...

  6. Node.js NPM Tutorial

    Node.js NPM Tutorial – How to Get Started with NPM? NPM is the core of any application that is devel ...

  7. 【解决办法】IIS环境中,打开网站后就直接列出了所有文件

    有时候访问一个不应当被访问的网站目录时网站会列出该目录下的所有文件,这很不安全,尤其是我们希望我们自己的网站不出现这种情况,如下图所示. 解决办法,在网站根目录新建web.config文件,内容如下: ...

  8. npm audit fix 报错

    found 2504 vulnerabilities (1360 low, 1109 moderate, 29 high, 6 critical)  run `npm audit fix` to fi ...

  9. [安全] HTTPS的理解

    一.概述 在下面的章节,我们要搞明白以下几个问题: HTTP和HTTPS的区别,为什么要使用HTTPS HTTPS如何解决加密问题 HTTPS如何避免中间人攻击 CA证书是什么 CA证书是如何申请和颁 ...

  10. 彻底理解JavaScript ES6中的import和export

    0.前言 前端工程,在最早的时候是没有模块的概念的.随着前端工程的发展,前端开发也越来越规范化,更像是软件工程了.那么随之而来的,为了解决工程化的问题,就引入了模块的概念.但是在早期,因为ecmasc ...