无线论坛 门户 我要刷机 查看内容

最全的u-boot命令详解

2016-6-28 13:59| 查看: 11000| 评论: 6|来自: Anywlan

uboot一个小型的linux核心,其命令非常丰富,本文收集了常用的命令和操作供大家参考。
七、Nor Flash指令


Nor Flash 的命令经常用于烧写数据到Nor Flash 。

flinfo  打印Flash存储器的信息,并列出所有Sector。
flinfo  N 单独打Flash存储器N Block的信息。(在有多块Nor Flash时使用)

使用范例:
[u-boot@MINI2440]# flinfo

Bank # 1: SST: 1x SST39VF1601 (2MB)
  Size: 2 MB in 32 Sectors
  Sector Start Addresses:
    00000000 (RO) 00010000 (RO) 00020000 (RO) 00030000 (RO) 00040000
    00050000 00060000 (RO) 00070000 (RO) 00080000 00090000
    000A0000 000B0000 000C0000 000D0000 000E0000
    000F0000 00100000 00110000 00120000 00130000
    00140000 00150000 00160000 00170000 00180000
    00190000 001A0000 001B0000 001C0000 001D0000
001E0000 001F0000
[u-boot@MINI2440]# flinfo 1

Bank # 1: SST: 1x SST39VF1601 (2MB)
  Size: 2 MB in 32 Sectors
  Sector Start Addresses:
    00000000 (RO) 00010000 (RO) 00020000 (RO) 00030000 (RO) 00040000
    00050000 00060000 (RO) 00070000 (RO) 00080000 00090000
    000A0000 000B0000 000C0000 000D0000 000E0000
    000F0000 00100000 00110000 00120000 00130000
    00140000 00150000 00160000 00170000 00180000
    00190000 001A0000 001B0000 001C0000 001D0000
    001E0000 001F0000
[u-boot@MINI2440]# flinfo 2
Only FLASH Banks # 1 ... # 1 supported


后面带有(RO)的说明这个Sector已经写保护了。

因为Nor Flash的读取接口和SDRAM是一样的,所以Nor Flash的读取也是使用md命令。范例如下:
[u-boot@MINI2440]# md.b 0x0 20
00000000: 12 00 00 ea 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 ................
00000010: 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 ................
[u-boot@MINI2440]# md 0x0 20
00000000: ea000012 e59ff014 e59ff014 e59ff014 ................
00000010: e59ff014 e59ff014 e59ff014 e59ff014 ................
00000020: 33f80260 33f802c0 33f80320 33f80380 `..3.....3...3
00000030: 33f803e0 33f80440 33f804a0 deadbeef ...3@..3...3....
00000040: 33f80000 33f80000 33fbe8dc 3400374c ...3...3...3L7.4
00000050: e10f0000 e3c0001f e38000d3 e129f000 ..............).
00000060: e3a00453 e3a01000 e5801000 e3e01000 S...............
00000070: e59f0488 e5801000 e59f1484 e59f0484 ................



    但由于Nor Flash的烧写时序和SDRAM的写入不同,烧写Nor  Flash 不能使用mm等命令,只能使用cp命令从内存拷贝到Nor Flash,而且烧写之前必须解除保护并擦除!命令如下:

protect :对Flash 写保护的操作,可以使能和解除写保护。
格式:
protect on/off start end 
protect on/off start +end 
protect on/off N:SF[-SL] 
protect on/off bank N 
protect on/off all 


第1 个参数on 代表使能写保护;off 代表解除写保护。
第2 、3 参数是指定Flash 写保护操作范围


start end是照起始地址和结束地址定义范围,start是擦除块的起始地址;end 是擦除末尾块的结束地址。
例如:擦除Sector 2和Sector 3区域命令为erase 20000 3ffff 。 

start +end是照起始地址和操作字节数定义范围,这种方式最常用。start是擦除块的起始地址;end 是擦除的字节数。
例如:擦除Sector 2和Sector 3区域命令为erase 20000  +20000

N:SF[-SL]是按照组和扇区,N 表示Flash 的Block号,SF 表示擦除起始Sector号,SL 表示擦除结束Sector号。
例如:擦除Block1 的Sector 2和Sector 3区域命令为erase 1:2-3。

bank N是擦除整个Block,擦除Block号为N 的整个Flash。

all是擦除全部Flash。

注意:Nor Flash擦除的最小单位是Sector,也就是0x10000字节,如果你定义的大小不满1 Sector或超过Sector的边界,那么被定义到的Sector会被全部擦除。
erase  :擦除Flash的命令
格式:
erase start end 
erase start +end 
erase N:SF[-SL] 
erase bank N 
erase all 
参数是指定Flash 擦除操作范围,跟写保护的方式相同。


以下的范例将mini2440的Nor Flash的Sector 16写保护,再解除保护,擦除数据,最后将起始的20字节拷贝到Sector 16。

[u-boot@MINI2440]# flinfo 1

Bank # 1: SST: 1x SST39VF1601 (2MB)
  Size: 2 MB in 32 Sectors
  Sector Start Addresses:
    00000000 (RO) 00010000 (RO) 00020000 (RO) 00030000 (RO) 00040000
    00050000 00060000 (RO) 00070000 (RO) 00080000 00090000
    000A0000 000B0000 000C0000 000D0000 000E0000
    000F0000 00100000 00110000 00120000 00130000
    00140000 00150000 00160000 00170000 00180000
    00190000 001A0000 001B0000 001C0000 001D0000
001E0000 001F0000
[u-boot@MINI2440]# protect on 1:16-16
Protect Flash Sectors 16-16 in Bank # 1
[u-boot@MINI2440]# flinfo 1

Bank # 1: SST: 1x SST39VF1601 (2MB)
  Size: 2 MB in 32 Sectors
  Sector Start Addresses:
    00000000 (RO) 00010000 (RO) 00020000 (RO) 00030000 (RO) 00040000
    00050000 00060000 (RO) 00070000 (RO) 00080000 00090000
    000A0000 000B0000 000C0000 000D0000 000E0000
    000F0000 00100000 (RO) 00110000 00120000 00130000
    00140000 00150000 00160000 00170000 00180000
    00190000 001A0000 001B0000 001C0000 001D0000
    001E0000 001F0000
[u-boot@MINI2440]# protect off 0x100000 0x10ffff
Un-Protect Flash Sectors 16-16 in Bank # 1
[u-boot@MINI2440]# flinfo 1

Bank # 1: SST: 1x SST39VF1601 (2MB)
  Size: 2 MB in 32 Sectors
  Sector Start Addresses:
    00000000 (RO) 00010000 (RO) 00020000 (RO) 00030000 (RO) 00040000
    00050000 00060000 (RO) 00070000 (RO) 00080000 00090000
    000A0000 000B0000 000C0000 000D0000 000E0000
    000F0000 00100000 00110000 00120000 00130000
    00140000 00150000 00160000 00170000 00180000
    00190000 001A0000 001B0000 001C0000 001D0000
    001E0000 001F0000
[u-boot@MINI2440]# erase 0x100000 +20
Erasing sector 16 ... ok.
Erased 1 sectors
[u-boot@MINI2440]# cp.b 0x0 0x100000 0x20
Copy to Flash... done
[u-boot@MINI2440]# md.b 100000 20
00100000: 12 00 00 ea 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 ................
00100010: 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 14 f0 9f e5 ................



19

高人
2

专业

握手

霸气

雷人

吐血

山寨

奋斗

刚表态过的朋友 (21 人)

发表评论

最新评论

引用 gd28084646 2016-10-26 19:04
看不懂
引用 deepinwl 2016-8-8 01:37
搞成一个PDF文件更好学与用吧
引用 deepinwl 2016-8-8 01:35
与CISCO的IOS一样的啦
引用 below63 2016-6-29 13:07
但是uboot已经不再更新了/微笑
引用 wyzabc110 2016-6-28 22:13
学习下...............
引用 modi5156 2016-6-28 21:53
菜鸟来学习下!灰常感谢大神科普

查看全部评论(6)

文章栏目
论坛新贴
今日热议
本周排行
最新文章

站点统计 | Archiver | 手机版 | 无线门户 ( 粤ICP备11076993号|粤公网安备44010602008359号 ) |网站地图

GMT+8, 2024-5-7 01:58

返回顶部