Chinaunix首页 | 论坛 | 博客
  • 博客访问: 334068
  • 博文数量: 86
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 185
  • 用 户 组: 普通用户
  • 注册时间: 2014-11-25 17:14
个人简介

代码才是最叼的

文章分类

全部博文(86)

文章存档

2019年(1)

2018年(1)

2017年(9)

2016年(19)

2015年(55)

2014年(1)

分类: 嵌入式

2016-05-25 10:41:59

(6) 内存/寄存器操作指令
nm      修改内存值 (指定地址)    
格式: nm [.b, .w, .l] address
 
mm     修改内存值(地址自动加一)
格式:  mm [.b, .w, .l] address
 
md       显示内存值
格式:  md [.b, .w, .l] address [# of objects]
 
mw     用指定的数据填充内存
格式:  mw [.b, .w, .l] address value [count]
 
cp      内存的拷贝(包括内存与Nor Flash间的数据拷贝)
格式:cp [.b, .w, .l] source target count
 
上面是查看和修改内存值的指令,可以查看和修改SDRAM和寄存器值。
[.b, .w, .l]代表了查看和修改形式:Byte、word、long
使用范例:

[u-boot@MINI2440]# md.b 0x30008000 20
30008000: cc 33 fe 33 cc b3 4c 33 ac 33 de 33 5c 13 cc 33 .3.3..L3.3.3\..3
30008010: cc 32 cc 31 dc 33 cf 33 cc 33 4e 33 8f 13 cc 33 .2.1.3.3.3N3...3
[u-boot@MINI2440]# md.w 0x30008000 20
30008000: 33cc 33fe b3cc 334c 33ac 33de 135c 33cc .3.3..L3.3.3\..3
30008010: 32cc 31cc 33dc 33cf 33cc 334e 138f 33cc .2.1.3.3.3N3...3
30008020: 338c 33cd 33cc 7bcc 3bcc 33cc 135e 734c .3.3.3.{.;.3^.Ls
30008030: 7bdc 37cc 31dc 33c4 038c 33e8 77cc 13cc .{.7.1.3...3.w..
[u-boot@MINI2440]# md.l 0x30008000 20
30008000: 33fe33cc 334cb3cc 33de33ac 33cc135c .3.3..L3.3.3\..3
30008010: 31cc32cc 33cf33dc 334e33cc 33cc138f .2.1.3.3.3N3...3
30008020: 33cd338c 7bcc33cc 33cc3bcc 734c135e .3.3.3.{.;.3^.Ls
30008030: 37cc7bdc 33c431dc 33e8038c 13cc77cc .{.7.1.3...3.w..
30008040: 234c77ce 33dc339c 33ec3ece f3cc36ec .wL#.3.3.>.3.6..
30008050: 37dc33cc 73cc3f5c 17dd314c 33cc62e8 .3.7\?.sL1...b.3
30008060: b6cc33dc 33c233cc 33cc32cc 33cc3f68 .3...3.3.2.3h?.3
30008070: 73cc31cc b3cc33cc 33cc37c9 33df13cc .1.s.3...7.3...3
[u-boot@MINI2440]# nm 0x30008000
30008000: 33fe33cc ? 12345678
30008000: 12345678 ? 34567890
30008000: 34567890 ? q
[u-boot@MINI2440]# nm.b 0x30008000
30008000: 90 ? 11
30008000: 11 ? 12
30008000: 12 ? q
[u-boot@MINI2440]# mm 0x30008000
30008000: 34567812 ? 54321123
30008004: 334cb3cc ? 12345678
30008008: 33de33ac ? 21234543
3000800c: 33cc135c ? q
[u-boot@MINI2440]# md.b 0x30008000 20
30008000: 23 11 32 54 78 56 34 12 43 45 23 21 5c 13 cc 33 #.2TxV4.CE#!\..3
30008010: cc 32 cc 31 dc 33 cf 33 cc 33 4e 33 8f 13 cc 33 .2.1.3.3.3N3...3
[u-boot@MINI2440]# mw.b 0x30008000 aa 10
[u-boot@MINI2440]# mw.b 0x30008010 55 10
[u-boot@MINI2440]# md.b 0x30008000 20
30008000: aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa ................
30008010: 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 55 UUUUUUUUUUUUUUUU
[u-boot@MINI2440]# cp.b 0x30008000 0x30008010 10
[u-boot@MINI2440]# md.b 0x30008000 20
30008000: aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa ................
30008010: aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa aa ................

 
你可以试着修改LED相连的GPIO寄存器的数据寄存器值,可以控制LED的点亮!
先熄灭后点亮LED1的范例:(这个实验要结合芯片数据手册和mini2440的原理图来理解)

[u-boot@MINI2440]# md 0x56000014 1
56000014: 00000600 ....
[u-boot@MINI2440]# nm.w 0x56000014 
56000014: 0600 ? 620 (熄灭)
56000014: 0620 ? 600 (点亮)


(7) 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 ................

(8) USB 操作指令
 

指令

功能

usb reset

初始化USB控制器

usb stop [f]

关闭USB控制器

usb tree

已连接的USB设备树

usb info [dev]

显示USB设备[dev]的信息

usb storage

显示已连接的USB存储设备

usb dev [dev]

显示和设置当前USB存储设备

usb part [dev]

显示USB存储设备[dev]的分区信息

usb read addr blk# cnt

读取USB存储设备数据

 

在所有的命令使用前,必须先插入USB设备,然后使用:usb reset,以初始化USB控制器,获取设备信息。

我将一个4G的kingstonU盘(可引导盘)插入 mini2440,然后读取他的头512 字节(MBR):

[u-boot@MINI2440]# usb reset
(Re)start USB...
USB: scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
[u-boot@MINI2440]# usb tree

Device Tree:
  1 Hub (12 Mb/s, 0mA)
  | OHCI Root Hub
  |
  +-2 Mass Storage (12 Mb/s, 100mA)
       Kingston DT 101 II 0019E02CB6EB5B8B1B120051

[u-boot@MINI2440]# usb info
1: Hub, USB Revision 1.10
 - OHCI Root Hub
 - Class: Hub
 - PacketSize: 8 Configurations: 1
 - Vendor: 0x0000 Product 0x0000 Version 0.0
   Configuration: 1
   - Interfaces: 1 Self Powered 0mA
     Interface: 0
     - Alternate Setting 0, Endpoints: 1
     - Class Hub
     - Endpoint 1 In Interrupt MaxPacket 2 Interval 255ms

2: Mass Storage, USB Revision 2.0
 - Kingston DT 101 II 0019E02CB6EB5B8B1B120051
 - Class: (from Interface) Mass Storage
 - PacketSize: 64 Configurations: 1
 - Vendor: 0x0951 Product 0x1613 Version 1.0
   Configuration: 1
   - Interfaces: 1 Bus Powered 100mA
     Interface: 0
     - Alternate Setting 0, Endpoints: 2
     - Class Mass Storage, Transp. SCSI, Bulk only
     - Endpoint 1 In Bulk MaxPacket 64
     - Endpoint 2 Out Bulk MaxPacket 64

[u-boot@MINI2440]# usb storage
  Device 0: Vendor: Kingston Rev: PMAP Prod: DT 101 II
            Type: Removable Hard Disk
            Capacity: 3875.0 MB = 3.7 GB (7936000 x 512)
[u-boot@MINI2440]# usb dev 0

USB device 0:
    Device 0: Vendor: Kingston Rev: PMAP Prod: DT 101 II
            Type: Removable Hard Disk
            Capacity: 3875.0 MB = 3.7 GB (7936000 x 512)
... is now current device
[u-boot@MINI2440]# usb part 0
print_part of 0

Partition Map for USB device 0 -- Partition Type: DOS

Partition Start Sector Num Sectors Type
    4 63 7935937 c
[u-boot@MINI2440]# usb read 0x30008000 0 200

USB read: device 0 block # 0, count 512 ... .........................
512 blocks read: OK
[u-boot@MINI2440]# md.b 0x30008000 200

30008000: fa 31 c0 8e d8 8e c0 8e d0 bc 00 7c fb fc 89 e6    .1.........|....

30008010: bf 00 06 b9 00 01 f3 a5 ea dc 06 00 00 10 00 01    ................

30008020: 00 00 7c 00 00 00 00 00 00 00 00 00 00 80 3f 00    ..|...........?.

30008030: ff 00 ed 01 1e 0e 1f 3a 16 10 00 74 06 1f ea 36    .......:...t...6

30008040: e7 00 f0 3d fb 54 75 05 8c d8 fb eb 1d 80 fc 08    ...=.Tu.........

30008050: 75 1b e8 81 00 8a 36 13 00 fe ce 8b 0e 15 00 86    u.....6.........

30008060: cd c0 e1 06 0a 0e 11 00 31 c0 f8 eb 65 80 fc 02    ........1...e...

30008070: 72 cb 80 fc 04 77 c6 60 80 cc 40 50 be 00 00 c7    r....w.`..@P....

30008080: 04 10 00 30 e4 89 44 02 89 5c 04 8c 44 06 66 31    ...0..D..\..D.f1

30008090: c0 66 89 44 0c 88 f0 f6 26 11 00 88 cf 88 eb c0    .f.D....&.......

300080a0: ef 06 81 e1 3f 00 01 c8 48 89 c7 a1 13 00 f7 26    ....?...H......&

300080b0: 11 00 f7 e3 01 f8 81 d2 00 00 89 44 08 89 54 0a    ...........D..T.

300080c0: 58 30 c0 8a 16 10 00 e8 0c 00 88 26 03 00 61 a1    X0.........&..a.

300080d0: 02 00 1f ca 02 00 9c ff 1e 22 00 c3 80 fa 8f 7f    ........."......

300080e0: 04 88 16 2d 06 be 87 07 e8 8d 00 be be 07 31 c0    ...-..........1.

300080f0: b9 04 00 f6 04 80 74 03 40 89 f5 81 c6 10 00 e2    ......t.@.......

30008100: f2 48 74 02 cd 18 bf 05 00 be 1d 06 c7 44 02 01    .Ht..........D..

30008110: 00 66 8b 46 08 66 89 44 08 b8 00 42 8a 16 2d 06    .f.F.f.D...B..-.

30008120: cd 13 73 0d 4f 74 49 30 e4 8a 16 2d 06 cd 13 eb    ..s.OtI0...-....

30008130: d8 a1 fe 7d 3d 55 aa 75 37 fa 66 a1 4c 00 66 a3    ...}=U.u7.f.L.f.

30008140: 3f 06 be 13 04 8b 04 48 89 04 c1 e0 06 8e c0 31    ?......H.......1

30008150: ff be 1d 06 b9 60 00 fc f3 a5 c7 06 4c 00 17 00    .....`......L...

30008160: a3 4e 00 fb 8a 16 2d 06 89 ee fa ea 00 7c 00 00    .N....-......|..

30008170: be aa 07 e8 02 00 eb fe ac 20 c0 74 09 b4 0e bb    ......... .t....

30008180: 07 00 cd 10 eb f2 c3 53 74 61 72 74 20 62 6f 6f    .......Start boo

30008190: 74 69 6e 67 20 66 72 6f 6d 20 55 53 42 20 64 65    ting from USB de

300081a0: 76 69 63 65 2e 2e 2e 0d 0a 00 42 6f 6f 74 20 66    vice......Boot f

300081b0: 61 69 6c 65 64 00 00 00 ea eb d4 ca 00 00 00 00    ailed...........

300081c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

300081d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................

300081e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 80 01    ................

300081f0: 01 00 0c fe 7f ec 3f 00 00 00 c1 17 79 00 55 aa    ......?.....y.U.

(9) SD卡(MMC)指令


SD卡的使用命令比较简单,只有初始化和设备信息的显示,读写是通过文件系统命令实现的。
mmc init [dev] - 初始化MMC子系统
mmc device [dev] - 查看和设置当前设备

使用和USB类似,在所有的命令使用前,必须先插入SD卡,然后使用:mmc init,以初始化MMC 控制器,获取设备信息。
我在mini2440中插入1GB SD卡:

[u-boot@MINI2440]# mmc init
mmc: Probing for SDHC ...
mmc: SD 2.or later card found
trying to detect SD Card...
Manufacturer: 0x00, OEM "Product name: "   ", revision 0.0

Serial number:      7864775

Manufacturing date: 11/2006

CRC:                0x4f, b0 = 1

READ_BL_LEN=6, C_SIZE_MULT=7, C_SIZE=4095

size = 0

SD Card detected RCA: 0x2 type: SD

mmc1 is available

[u-boot@MINI2440]# mmc device

mmc1 is current device

(10) FAT文件系统指令

fatinfo:显示文件系统的相关信息
格式:fatinfo
Interface:代表接口,如usb、mmc;
dev:代表设备编号,如0、1……;
part:代表存储设备中的分区,如1、2……。

fatload:从FAT32文件系统中读取二进制文件到SDRAM。
格式:fatload   [bytes]
Interface、dev和part同上;
addr:代表写入SDRAM的地址;
filename:代表存储设备中的文件名;
bytes:代表从存储设备中读取的文件大小,可不填;如果填的数据比文件小,就只读取bytes字节,如果填的数据比文件大,也只读取文件的大小。

fatls:列出FAT32文件系统中目录里的文件。
格式:fatls [directory]
Interface、dev和part同上;
directoryr:代表所要查看的目录,可不填,默认为/。

这些指令基本上要和U盘或者SD卡同时使用,主要用于读取这些移动存储器上的FAT32分区。

使用范例:

[u-boot@MINI2440]# usb part 0
print_part of 0

Partition Map for USB device 0 -- Partition Type: DOS

Partition Start Sector Num Sectors Type
    4 63 7935937 c
[u-boot@MINI2440]# fatinfo usb 0:4
Interface: USB
  Device 0: Vendor: Kingston Rev: PMAP Prod: DT 101 II
            Type: Removable Hard Disk
            Capacity: 3875.0 MB = 3.7 GB (7936000 x 512)
Partition 4: Filesystem: FAT32 "7600_16385_"
 [u-boot@MINI2440]# fatls usb 0:4
            boot/
            efi/
            sources/
            support/
            upgrade/
       43 autorun.inf
   383562 bootmgr
   111880 setup.exe
   256220 u-boot.bin

file(s), 5 dir(s)

[u-boot@MINI2440]# fatls usb 0:/boot/
            ./
            ../
            fonts/
            zh-cn/
   262144 bcd
  3170304 boot.sdi
     1024 bootfix.bin
    97280 bootsect.exe
     4096 etfsboot.com
   485440 memtest.exe

file(s), 4 dir(s)
[u-boot@MINI2440]# fatload usb 0:4 0x30008000 u-boot.bin
reading u-boot.bin
........................

256220 bytes read
 [u-boot@MINI2440]# fatload usb 0:4 0x30008000 u-boot.bin 200
reading u-boot.bin

512 bytes read

(11) 系统引导指令

boot  和bootd  都是运行ENV”bootcmd”中指定的指令。


bootm 指令是专门用于启动在SDRAM中的用U-boot的mkimage工具处理过的内核映像。
格式:bootm [addr [arg ...]]
addr 是内核映像所在的SDRAM中的地址
当启动的是Linux内核时,'arg' 可以使 initrd 的地址。

[u-boot@MINI2440]# setenv bootcmd tftp\;bootm
[u-boot@MINI2440]# saveenv
Saving Environment to NAND...
Erasing Nand...
Erasing at 0x6000000000002 -- 0% complete.
Writing to Nand... done
[u-boot@MINI2440]# boot
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 192.168.1.100; our IP address is 192.168.1.101
Filename 'zImage.img'.
Load address: 0x30008000
Loading: T #################################################################
     #################################################################
     ##########################
done
Bytes transferred = 2277540 (22c0a4 hex)
## Booting kernel from Legacy Image at 30008000 ...
   Image Name: tekkaman
   Created: 2010-03-29 12:59:51 UTC
   Image Type: ARM Linux Kernel Image (uncompressed)
   Data Size: 2277476 Bytes = 2.2 MB
   Load Address: 30008000
   Entry Point: 30008040
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
Linux version 2.6.33.(tekkaman@MAGI-Linux) (gcc version 4.3.2(crosstool-NG-1.6.1-tekkaman) ) #5 Mon Mar 29 20:58:50 CST 2010
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: MINI2440
(略)


U-Boot 2009.11 ( 4月 04 2010 - 12:09:25)

 modified by tekkamanninja (tekkamanninja@163.com)
 Love Linux 

I2C: ready
DRAM: 64 MB
Flash: 2 MB
NAND: 128 MiB
Video: 240x320x16 20kHz 62Hz
In: serial
Out: serial
Err: serial
Net: dm9000
U-Boot 2009.11 ( 4月 04 2010 - 12:09:25)
modified by tekkamanninja
(tekkamanninja@163.com)
Love Linux 
Hit any key to stop autoboot: 0
[u-boot@MINI2440]# bootd
dm9000 i/o: 0x20000300, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 08:08:11:18:12:27
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 192.168.1.100; our IP address is 192.168.1.101
Filename 'zImage.img'.
Load address: 0x30008000
Loading: T #################################################################
     #################################################################
     ##########################
done
Bytes transferred = 2277540 (22c0a4 hex)
## Booting kernel from Legacy Image at 30008000 ...
   Image Name: tekkaman
   Created: 2010-03-29 12:59:51 UTC
   Image Type: ARM Linux Kernel Image (uncompressed)
   Data Size: 2277476 Bytes = 2.2 MB
   Load Address: 30008000
   Entry Point: 30008040
   Verifying Checksum ... OK
   XIP Kernel Image ... OK
OK

Starting kernel ...
(略)

(12)EEPROM 读写指令

eeprom  - I2C 接口的EEPROM 读写指令
格式:
eeprom read  addr off cnt
eeprom write addr off cnt
第一个参数addr 是要写入或读出的数据在SDRAM中的存放地址;
第二个参数off 是在EEPROM中的偏移;
第三个参数cnt 是读写的数据字节数。

使用范例:

[u-boot@MINI2440]# md.b 0x30008000 2
30008000: aa aa ..
[u-boot@MINI2440]# eeprom read 0x30008000 10 2

EEPROM @0x50 read: addr 30008000 off 0010 count 2 ... done
[u-boot@MINI2440]# md.b 0x30008000 2
30008000: ff ff ..
 [u-boot@MINI2440]# mm.b 0x30008000
30008000: ff ? aa
30008001: ff ? 55
30008002: aa ? q
[u-boot@MINI2440]# md.b 0x30008000 2
30008000: aa 55 .U
[u-boot@MINI2440]# eeprom write 0x30008000 10 2

EEPROM @0x50 write: addr 30008000 off 0010 count 2 ... done
[u-boot@MINI2440]# eeprom read 0x30008010 10 2

EEPROM @0x50 read: addr 30008010 off 0010 count 2 ... done
[u-boot@MINI2440]# md.b 0x30008010 2
30008010: aa 55 .U

(13)设置和读取RTC指令

date    - 设置和读取RTC
格式:
date [MMDDhhmm[[CC]YY][.ss]]
MM:月份

DD:日期

hh:小时

mm 分钟

CC:年份的前两个数字

YY:年份的后两个数字

ss:秒数

使用范例:

[u-boot@MINI2440]# date
Date: 1980-00-06 (Thursday) Time: 20:30:25
[u-boot@MINI2440]# date 041100582010.20
Date: 2010-04-11 (Sunday) Time: 0:58:20

(14)脚本运行指令

run var [...]

var :ENV中的脚本名

使用范例:

[u-boot@MINI2440]# setenv a_run_test echo $bootfile \; version
[u-boot@MINI2440]# run a_run_test
zImage.img

U-Boot 2009.11 ( 4月 04 2010 - 12:09:25)

(15)系统重启指令

reset   重启CPU

[u-boot@MINI2440]# reset
resetting ...


U-Boot 2009.11 ( 4月 04 2010 - 12:09:25)

 modified by tekkamanninja (tekkamanninja@163.com)
 Love Linux 

I2C: ready
DRAM: 64 MB
Flash: 2 MB
NAND: 128 MiB
Video: 240x320x16 20kHz 62Hz
In: serial
Out: serial
Err: serial
Net: dm9000
U-Boot 2009.11 ( 4月 04 2010 - 12:09:25)
modified by tekkamanninja
(tekkamanninja@163.com)
Love Linux 
Hit any key to stop autoboot: 0
[u-boot@MINI2440]#

阅读(955) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~