我依然清晰的记得刚拿到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. NodeJS的概述

    1.NodeJS概述 基于谷歌V8引擎,运行在服务器端的环境 对比JS和NodeJS (1)JS运行在浏览器端,存在多种浏览器解释器,容易产生兼容性的问题:而NodeJS运行在服务器端,只有V8引擎一 ...

  2. MyCat垂直分库

    一.什么是垂直分库 将一类功能的表从一个实例切分到另一个实例,横向扩展实例,增加写负载 目标:将1个实例的4类表拆分多4个实例中 二.垂直切分步骤 2.1收集分析业务模块间的关系,能分几个库 2.2全 ...

  3. vue绑定数据之前 会看到源代码

    http://blog.csdn.net/fengjingyu168/article/details/72915468 VUE绑定数据闪现问题 问题描述如下: 1.在HTML中使用Vue为div绑定数 ...

  4. 王艳 201771010127《面向对象程序设计(java)》第一周学习总结

    王艳 201771010127<面向对象程序设计(java)>第一周学习总结 第一部分:课程准备部分 填写课程学习 平台注册账号, 平台名称 注册账号 博客园:www.cnblogs.co ...

  5. 代码行数统计的Java和Python实现

    通过编写程序来统计文件的行数,可以在巩固文件IO知识的同时计算出自己的代码量,以下分别提供Java和Python实现的版本. 解决思路 两种版本的思路几乎相同,每一个文件夹(目录)内的行数都是其所有子 ...

  6. C语言基础知识(三)——指针

    指针定义 1.指针的值表示的是它所指向对象的地址,指针+1表示的是下一元素的地址,按**字节**编址,而不是下一字节的地址. 2.依照数据类型而定,short占用两字节.int占用4字节.double ...

  7. 一言难尽,Jpa这个功能差点让我丢了工作

    故事背景 前阵子,有位朋友在微信上问我数据被删了能不能恢复,我问了下原因,居然是因为一个配置项惹的祸. 故事细节 在 Spring Boot 中使用 jpa 来操作数据库,jpa 就不做详细的介绍了, ...

  8. JS最通俗易懂简易轮播实现

    轮播图作为前端比较简易的动画,使用非常频繁,这里记录以便使用 此轮播图为最简易自动播放,非无缝,无按钮,无缩略图和序号 想看全套轮播图可以查看我的分类轮播图全套 html 布局 <div sty ...

  9. MySQL的日期类型

    -- MySQL 中有多种数据类型可以用于日期和时间的表示,不同的版本可能有所差异,表 3-2 中-- 列出了 MySQL 5.0 中所支持的日期和时间类型.-- 表 3-2 MySQL 中的日期和时 ...

  10. web自动化之文件上传操作

    #!/usr/bin/python3 # -*- coding: utf-8 -*- #Author: xiaojian #Time: 2018/11/16 20:49 import win32gui ...