我依然清晰的记得刚拿到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. wpf winform 截图

    wpf 通过下面的截图,标题可能会丢失. public void CreateBitmapFromVisual(Window win, string fileName)        {        ...

  2. GraphQL-- 使用Apollo Server搭建Node服务端

    一.关于Apollo Server Apollo Server是一种使用JS创建GraphQL服务端的一个方案.它的兼容性比较好,可以很好地和GraphQL客户端进行兼容.同时它可以 独立作为服务端进 ...

  3. Java——关键字instanceof

    instanceof 判断一个对象是否为一个类的实例,是为true ,否为false class Animal{} class Cat extends Animal{} /**instanceof 判 ...

  4. 替换Java WEB工程文件的指定字符串

    package com.utils; import java.io.BufferedReader;import java.io.File;import java.io.FileFilter;impor ...

  5. StreamSets使用指南

    StreamSets使用指南 最近在调研Streamsets,照猫画虎做了几个最简单的Demo鉴于网络上相关资料非常少,做个记录. 1.简介 Streamsets是一款大数据实时采集和ETL工具,可以 ...

  6. Java——MVC模式

    MVC:Model View Controller 一般用于动态程序设计,实现了业务逻辑和表示层分离 Model:掌控数据源-->程序员编写程序或者实现算法,数据库人员进行数据库操作等:响应用户 ...

  7. 基于 kubeadm 搭建高可用的kubernetes 1.18.2 (k8s)集群一 环境准备

    本k8s集群参考了 Michael 的 https://gitee.com/pa/kubernetes-ha-kubeadm-private 这个项目,再此表示感谢! Michael的项目k8s版本为 ...

  8. JavaScript 简版-菜鸟中的菜鸟

    JavaScript 简介 JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器.PC.笔记本电脑.平板电脑和智能手机等设备. JavaScrip ...

  9. 透过 NestedScrollView 源码解析嵌套滑动原理

    NestedScrollView 是用于替代 ScrollView 来解决嵌套滑动过程中的滑动事件的冲突.作为开发者,你会发现很多地方会用到嵌套滑动的逻辑,比如下拉刷新页面,京东或者淘宝的各种商品页面 ...

  10. [组合数学] 圆排列和欧拉函数为啥有关系:都是polya定理的锅

    本文是一个笨比学习组合数学的学习笔记,因为是笨比,所以写的应该算是很通俗易懂了. 首先,我们考虑这么一个问题:你有无穷多的\(p\)种颜色的珠子,现在你想要的把他们中的\(n\)个以圆形的形状等间距的 ...