zoukankan      html  css  js  c++  java
  • 常用u-boot命令详解(全) 2 分类: arm-linux-Ubuntu 2013-07-22 16:28 309人阅读 评论(0) 收藏


    (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 "roduct 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> <dev[:part]>
    Interface:代表接口,如usb、mmc;
    dev:代表设备编号,如0、1……;
    part:代表存储设备中的分区,如1、2……。

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

    fatls:列出FAT32文件系统中目录里的文件。
    格式:fatls <interface> <dev[:part]> [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&aelig;&#339;&#710; 04 2010 - 12:09:25)

    (15)系统重启指令

    reset
    重启CPU

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


    U-Boot 2009.11 ( 4&aelig;&#339;&#710; 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&aelig;&#339;&#710; 04 2010 - 12:09:25)
    modified by tekkamanninja
    (tekkamanninja@163.com)
    Love Linux 
    Hit any key to stop autoboot: 0
    [u-boot@MINI2440]#



    四、U-boot的使用(四)

    下载与烧写

    使用U-boot将映像文件烧写到板上的Flash,一般步骤是:
    (1)通过网络、串口、U盘、SD卡等方式将文件传输到SDRAM;
    (2)使用Nand Flash或Nor Flash相关的读写命令将SDRAM中的数据烧入Flash。

    下面是烧写范例:
    如果使用 SD卡和U盘形式更新U-boot,那么首先SD卡和U盘中必须有FAT32文件系统,并在里面存放了u-boot.bin 文件。
    1) 通过SD卡烧入Nand Flash:
    [u-boot@MINI2440]# mmc init
    mmc: Probing for SDHC ...
    mmc: SD 2.0 or later card found
    trying to detect SD Card...
    Manufacturer:
    0x00, OEM "roduct 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]# fatload mmc 1 0x30008000 u-boot.bin
    reading u-boot.bin

    256220 bytes read
    [u-boot@MINI2440]# nand erase 0 0x40000

    NAND erase: device 0 offset 0x0, size 0x40000
    Erasing at 0x2000000000004 --
    0% complete.

    OK
    [u-boot@MINI2440]# nand write 0x30008000 0 0x40000

    NAND write: device 0 offset 0x0, size 0x40000
    Writing at 0x2000000020000 -- 100% is complete. 262144 bytes written: OK

    2) 通过U盘烧入Nor Flash:
    [u-boot@MINI2440]# usb start
    (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 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 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]# fatload usb 0:4 0x30008000 u-boot.bin

    reading u-boot.bin
    ........................

    256220 bytes read
    [u-boot@MINI2440]# protect off all
    Un-Protect Flash Bank # 1
    [u-boot@MINI2440]# erase 0x0 0x3ffff
    Erasing sector
    0 ... ok.

    Erasing sector
    1 ... ok.

    Erasing sector
    2 ... ok.

    Erasing sector
    3 ... ok.

    Erased 4 sectors
    [u-boot@MINI2440]# cp.b 0x30008000 0x0
    0x3ffff

    Copy to Flash... done

    3) 通过TFTP服务烧入Nand Flash:
    [u-boot@MINI2440]# tftpboot 30008000 192.168.1.100:u-boot.bin
    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 'u-boot.bin'.
    Load address: 0x30008000
    Loading: T ##################
    done
    Bytes transferred = 256220 (3e8dc hex)
    [u-boot@MINI2440]# nand erase 0 0x40000
    NAND erase: device 0 offset 0x0, size 0x40000
    Erasing at 0x2000000000004 --
    0% complete.

    OK
    [u-boot@MINI2440]# nand write 0x30008000 0 0x40000

    NAND write: device 0 offset 0x0, size 0x40000
    Writing at 0x2000000020000 -- 100% is complete. 262144 bytes written: OK

    4) 通过NFS 服务烧入Nand Flash:

    [u-boot@MINI2440]# nfs 30008000 192.168.1.100:/home/tekkaman/development/share/u-boot.bin
    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
    File transfer via NFS from server 192.168.1.100; our IP address is 192.168.1.101
    Filename '/home/tekkaman/development/share/u-boot.bin'.
    Load address: 0x30008000
    Loading: ###################################################
    done
    Bytes transferred = 256220 (3e8dc hex)
    [u-boot@MINI2440]# nand erase 0 0x40000
    NAND erase: device 0 offset 0x0, size 0x40000
    Erasing at 0x2000000000004 --
    0% complete.

    OK
    [u-boot@MINI2440]# nand write 0x30008000 0 0x40000

    NAND write: device 0 offset 0x0, size 0x40000
    Writing at 0x2000000020000 -- 100% is complete. 262144 bytes written: OK


    内核引导

    内核的引导步骤如下:
    (1)用U-boot的mkimage工具处理内核映像zImage。
    (2)通过网络、串口、U盘、SD卡等方式将处理过的内核映像传输到SDRAM的一定位置(一般使用0x30008000)
    (3)然后使用”bootm"等内核引导命令来启动内核。


    为什么要U-bootmkimage工具处理内核映像zImage
    因为在用bootm命令引导内核的时候,bootm需要读取一个64字节的文件头,来获取这个内核映象所针对的CPU体系结构、OS、加载到内存中的位置、在内存中入口点的位置以及映象名等等信息。这样bootm才能为OS设置好启动环境,并跳入内核映象的入口点。而mkimage就是添加这个文件头的专用工具。具体的实现请看U-bootbootm的源码和mkimage的源码
    mkimage工具的使用:

    参数说明:
    -A 指定CPU的体系结构,可用值有:alphaarm
    x86ia64mipsmips64ppc s390shsparc sparc64m68k

    -O 指定操作系统类型,可用值有:openbsdnetbsdfreebsd4_4bsdlinuxsvr4esixsolarisirixscodellncrlynxosvxworkspsosqnxu-bootrtemsartos
    -T 指定映象类型,可用值有:standalonekernelramdiskmultifirmwarescriptfilesystem
    -C 指定映象压缩方式,可用值有:
    none
    不压缩(一般使用这个,因为zImage是已经被bzip2压缩过的自解压内核

    gzip gzip的压缩方式
    bzip2 bzip2的压缩方式
    -a 指定映象在内存中的加载地址,映象下载到内存中时,要按照用mkimage制作映象时,这个参数所指定的地址值来下载
    -e
    指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40(因为前面有个mkimage添加的0x40个字节的头)
    -n
    指定映象名
    -d 指定制作映象的源文件

    以下是制作内核映像的命令示例:
    mkimage -n 'tekkaman' -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage zImage.img


    以下是使用范例:
    1) 通过SD卡引导内核:
    首先SD卡中必须有FAT32文件系统,并在里面存放了处理过的内核映像文件。

    [u-boot@MINI2440]# mmc init


    mmc: Probing for SDHC ...
    mmc: SD 2.0 or later card found
    trying to detect SD Card...
    Manufacturer:
    0x00, OEM "roduct 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]# fatload mmc 1 30008000 zImage.img
    reading zImage.img

    2277540 bytes read
    [u-boot@MINI2440]# bootm 30008000
    ## 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.1 (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
    (略)


    2) 通过TFTP服务引导内核:
    [u-boot@MINI2440]# tftpboot 0x30008000 192.168.1.100:zImage.img 
    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)
    [u-boot@MINI2440]# bootm 30008000
    ## 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.1 (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
    (略)


    3) 通过NFS服务引导内核:
    [u-boot@MINI2440]# nfs 30008000 192.168.1.100:/home/tekkaman/development/share/zImage.img
    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
    File transfer via NFS from server 192.168.1.100; our IP address is 192.168.1.101
    Filename '/home/tekkaman/development/share/zImage.img'.
    Load address: 0x30008000
    Loading: #################################################################


    #################################################################



    #################################################################



    #################################################################



    #################################################################



    #################################################################



    #######################################################

    done
    Bytes transferred = 2277540 (22c0a4 hex)
    [u-boot@MINI2440]# bootm 30008000
    ## 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.1 (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
    (略)

    4) 通过Nand Flash引导内核:
       首先要将处理过的内核映像文件烧入Nand Flash的一定位置(由内核分区表决定)。以后每次启动时用Nand Flash的读取命令先将这个内核映像文件读到内存的一定位置(由制作内核映像时的-a参数决定),再使用bootm命令引导内核。

    内核映像文件的烧入:

    [u-boot@MINI2440]# nfs 30008000 192.168.1.100:/home/tekkaman/development/share/zImage.img
    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
    File transfer via NFS from server 192.168.1.100; our IP address is 192.168.1.101
    Filename '/home/tekkaman/development/share/zImage.img'.
    Load address: 0x30008000
    Loading: #################################################################


    #################################################################



    #################################################################



    #################################################################



    #################################################################



    #################################################################



    #######################################################

    done
    Bytes transferred = 2277540 (22c0a4 hex)
    [u-boot@MINI2440]# nand erase 0x80000 0x300000

    NAND erase: device 0 offset 0x80000, size 0x300000
    Erasing at 0x36000001800000 --
    0% complete.

    OK
    [u-boot@MINI2440]# 
    nand write 30008000 0x80000 300000 


    NAND write: device 0 offset 0x80000, size 0x300000

    Writing at 0x36000000020000 -- 100% is complete. 3145728 bytes written: OK


    内核引导: 

    [u-boot@MINI2440]# 
    nand read 30008000 0x80000 300000


    NAND read: device 0 offset 0x80000, size 0x300000

    3145728 bytes read: OK

    [u-boot@MINI2440]# bootm 30008000
    ## 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.1 (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

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    opencv 图像轮廓特征 图像面积,轮廓周长,外接矩形、最小外接矩形、最小外接圆、拟合椭圆
    opencv cv.findContours 函数详解 图像轮廓层级 图像轮廓检索方式详解
    opencv 绘制图像轮廓
    opencv 实现图像形态学操作 膨胀和腐蚀 开闭运算 形态学梯度 顶帽和黑帽
    opencv 检测图像边缘 Canny算法应用
    opecv 卷积原理、边缘填充方式、卷积操作详解
    opencv 修改图像对比度、图像亮度
    opencv 实现图像融合
    P1396 营救
    P2296 寻找道路
  • 原文地址:https://www.cnblogs.com/mao0504/p/4706947.html
Copyright © 2011-2022 走看看