嵌入式软件层次

1.Bootloader

2.Linux内核

3.文件系统

编译U-Boot

1.解压uboot

tar zxvf uboot.tar.gz

2.清除uboot

make distclean

3.配置uboot

make mini2440_config

4.编译uboot

ARCH指定处理器架构,CROSS_COMPLIE指明交叉工具链

make ARCH=arm CROSS_COMPLIE=arm-linux-

5.下载uboot

./dnw u-boot.bin 30000000

uboot命令

1.help:帮助命令

示例:

help   显示所有uboot支持的命令

2.printenv(print):查看环境变量

示例:

printenv(print)   显示所有环境变量

printenv(print) 环境变量名   显示指定的环境变量

3.setenv:添加、修改和删除环境变量

示例:

setenv new_name new_value   添加环境变量

setenv old_name new_value   修改环境变量

setenv old_name             删除环境变量

4.saveenv:保存环境变量

示例:

saveenv   保存所有环境变量到闪存

5.tftp:文件下载

示例:

setenv ethaddr 12:34:56:78:9A:BC   设置网卡地址

setenv ipaddr 192.168.1.230        设置开发板IP地址

setenv serverip 192.168.1.100      设置服务器IP地址

saveenv                            保存环境变量

ping 192.168.1.100                 测试是否能ping通tftp服务器

tftp 0x31000000 uImage         下载uImage到开发板的0x31000000位置

配置tftp服务器

vim /etc/xinetd.d/tftp       设置server_args=tftp服务器目录,disable=no

/etc/inid.d/xinetd restart   启动tftp服务器

netstat –a | grep tftp      查看tftp服务是否启动

6.bootm:执行程序

执行固定格式的2进制程序,固定格式是指加了相关信息头部的可执行程序。

示例:

bootm 0x31000000

7.md:内存查看

md采用十六进制和ASCII码两种形式来显示存储单元的内容。这条命令可以加长度标示符.b,.w和.l。

示例:

md 0x30000000     以十六进制显示内存数据

md.b 0x30000000   以字节进制显示内存数据

8.mm:内存修改

mm提供了一种互动修改内存数据的方法。它会显示地址和当前值,然后提示用户输入。如果输入了一个合法的十六进制数,那么这个新的值将会被写入该地址,然后提示输入下一个地址。如果没有输入任何值,只是按了一下回车,那么该地址的内容保存不变。如果想要结束输入,那么按空格后,再按回车。

mm 0x30000000     以十六进制修改内存数据

9.nand erase:擦除闪存

nand erase 闪存起始地址 擦除长度

示例:

nand erase 0x400000 0x500000   从闪存的4M位置处擦除5M大小的区域

10.nand write:写入闪存

nand write 内存起始地址 闪存起始地址 写入长度

示例:

nand write 0x31000000 0x400000 0x500000   把内存31000000位置写入5M到闪存4M位置

11.nand read:读取闪存

nand read 内存起始地址 闪存起始地址 读取长度

示例:

nand read  0x31000000 0x400000 0x500000   把闪存4M位置读取5M到内存31000000位置

12.设置自动启动

12.1.设置从闪存自动下载到内存,然后启动

示例:

setenv bootcmd nand read 31000000 400000 500000 \; bootm 31000000

saveenv

12.2.设置从网络自动下载到内存,然后启动

setenv bootcmd tftp 31000000 uImage \; bootm 31000000

saveenv

注意:多条命令用\;隔开,并且两边都要有空格

设置uboot启动Linux内核

1.查看环境变量

print

2.修改环境变量

setenv ethaddr 12:34:56:78:9A:BC

setenv ipaddr 192.168.1.230

setenv serverip 192.168.1.100

saveenv

3.测试网络连接

ping 192.168.1.100

4.网络下载内核

tftp 0x30008000 uImage

5.内核写入闪存

nand write 30008000 400000 500000

6.设置自动启动

setenv bootcmd nand read 30008000 400000 500000 \; bootm 30008000

saveenv

[国嵌攻略][097][U-Boot新手入门]的更多相关文章

  1. [国嵌攻略][099][Linux内核配置与编译]

    为什么要配置内核 基于硬件和软件的需求选出需要的功能,去掉不要的功能. 内核配置的方法 make config:基于文本交互的配置. make menuconfig:基于图形菜单的配置. make m ...

  2. [国嵌攻略][098][Linux内核简介]

    Linux系统架构 1.用户空间:应用程序.C函数库 2.内核空间:系统调用接口.内核.体系结构相关代码 Linux系统利用处理器不同的工作模式,使用其中的两个级别分别来运行Linux内核与应用程序, ...

  3. [国嵌攻略][068][tftp网络协议实现]

    IP协议结构 UDP协议结构 TFTP协议结构 TFTP端口 读写请求端口: 69 其他请求端口:1024~65535 主程序 /*********************************** ...

  4. [国嵌攻略][045-046][一跃进入C大门]

    [一跃进入C大门] 跳转方式 1.相对跳转:b或bl指令,通过计算两个地址之间的差值来给pc赋值相对跳转 2.绝对跳转:ldr指令,通过给pc直接赋值,完成绝对跳转 代码编写 1.在汇编代码中直接使用 ...

  5. [国嵌攻略][182][Sqlite嵌入式数据库移植]

    数据库系统构成 在计算机系统中,保存数据的方式一般有两种: 1.普通文件方式 2.数据库方式 相比于普通文件方式,使用数据库来管理大批量数据具有更高的效率与安全性. 数据库系统一般由三个部分构成 1. ...

  6. [国嵌攻略][179][OpenSSL加密系统]

    未加密传输的安全弊端 如果在网络传输中没有加密,就是以明文传输.传输的数据可以被抓包软件直接截获,并能读取里面的数据. 加密基本原理 1.对称加密 2.非对称加密 2.1.公钥私钥 公钥和私密要配对. ...

  7. [国嵌攻略][174][CGI快速入门-网页控制LED]

    CGI程序(Common Gate Way Interface) 在服务器外部供服务器调用的程序,CGI程序与服务器配合后能让服务器完成更强大的功能. 1.浏览器通过HTML表单或超链接请求指向一个C ...

  8. [国嵌攻略][173][BOA嵌入式服务器移植]

    1.解压boa嵌入式web服务 tar zxvf boa-0.94.13.tar.gz 2.进入src目录生成配置文件 ./configure 3.修改生成的Makefile CC=arm-linux ...

  9. [国嵌攻略][171][V4L2图像编程接口深度学习]

    V4L2摄像编程模型 1.打开摄像头设备文件 2.获取驱动信息-VIDIOC_QUERYCAP 3.设置图像格式-VIDIOC_S_FMT 4.申请帧缓冲-VIDIOC_REQBUFS 5.获取帧缓冲 ...

随机推荐

  1. 栈详解及java实现

    导读 栈和队列是有操作限制的线性表. 目录 1.栈的概念.特点.存储结构. 2.栈的java实现及运用. 概念 栈是一种只允许在一端进行插入或删除的线性表. 1.栈的操作端通常被称为栈顶,另一端被称为 ...

  2. 微信公众号开发——通过ffmpeg解决amr文件无法播放问题

    今天刚好碰到个需求,要在微信浏览器中实现录音,并在其他页面上播放.录音功能本身是JS SDK的功能,倒没啥问题,然而录音的文件保存下来是amr格式,而IOS的浏览器没法播放amr(据说微信浏览器的vi ...

  3. Parallels Desktop 12

    我微新solq123987654 备注:PD 科普:PD12有什么用,PD是让mac系统可以运行wind系统的软件,如果你不习惯mac os 或工作需要那PD绝对是个好软件正版要七八百授权,只要十五就 ...

  4. mysql也有complex view merging 这个特性(5.6 , 5.7)

    出处:黑洞中的奇点 的博客 http://www.cnblogs.com/kelvin19840813/ 您的支持是对博主最大的鼓励,感谢您的认真阅读.本文版权归作者所有,欢迎转载,但请保留该声明. ...

  5. MySQL一对一:一对多:多对多: 实例!!!!

    学生表和课程表可以多对多 一个学生可以学多门课程 一门课程可以有多个学生: 多对多 *** 一个学生对应一个班级 一个班级对应多个学生: 一对多 *** 一个老师对应多个学生 多个学生对应一个老师:一 ...

  6. Python random模块sample、randint、shuffle、choice随机函数概念和应用

    Python标准库中的random函数,可以生成随机浮点数.整数.字符串,甚至帮助你随机选择列表序 列中的一个元素,打乱一组数据等. random中的一些重要函数的用法: 1 ).random() 返 ...

  7. Python day 7(2) 类和实例(1)

    一:面向对象编程 1  面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 2 ...

  8. XSS Challenges闯关笔记

    前言 做xss做疯了再来一个. 地址:https://xss-quiz.int21h.jp/ ,这个貌似是日本的一个安全研究员yamagata21做的. 做到第九关就跪了,而总共有二十关.一半都还没有 ...

  9. 初读"Thinking in Java"读书笔记之第二章 --- 一切都是对象

    用引用操纵对象 Java里一切都被视为对象,通过操纵对象的一个"引用"来操纵对象. 例如, 可以将遥控器视为引用,电视机视为对象. 创建一个引用,不一定需要有一个对象与之关联,但此 ...

  10. [转载]CentOS 7安装Gnome GUI 图形界面

    原文链接:http://www.centoscn.com/image-text/config/2015/0528/5552.html 当你安装centos服务器版本的时候,系统默认是不会安装 Cent ...