Uboot 사용(2)

63527 단어 u-boot
Uboot 사용(2)
전송 주소,감사합니다 공유:http://blog.chinaunix.net/uid-20543672-id-94377.html
(3)직렬 전송 명령
명령:
loadb   - load binary file over serial line (kermit mode)
loadx   - load binary file over serial line (xmodem mode)
loady   - load binary file over serial line (ymodem mode)
 
기능:서로 다른 프로 토 콜 로 직렬 포트 에서 파일 가 져 오기...
기본 형식:
load? [ off ] [ baud ]
첫 번 째 매개 변 수 는 SDRAM 에 다운 로드 된 주소 입 니 다.채 우지 않 으 면 기본 설정 으로:CONFIGSYS_LOAD_ADDR
두 번 째 매개 변 수 는 포트 율 입 니 다.보통 채 우지 않 고 기본 115200 을 사용 합 니 다.
 
    windows 의 슈퍼 터미널 에 서 는 이 프로 토 콜 로 파일 을 보 낼 수 있 지만,ubuntu 에 서 는 기본적으로 kermit 프로 토 콜 만 사용 할 수 있 습 니 다.미니 2440 에 파일 을 보 내 려 면 C-kermit 를 사용 하 십시오.[u-boot@MINI2440]# loadb
## Ready for binary (kermit) download to 0x30008000 at 115200 bps...

 
    U-boot 의 kermit 전송 프로 토 콜 이 시작 되 었 습 니 다.이때 Ctrl+\를 누 르 고 c 를 누 르 면 C-kermit 명령 행 모드 로 전환 하고 명령 을 입력 하 십시오:send  <파일 경로>,리 턴.[u-boot@MINI2440]# loadb
## Ready for binary (kermit) download to 0x30008000 at 115200 bps...

(Back at MAGI-Linux)
----------------------------------------------------
C-Kermit 8.0.211, 10 Apr 2004, for Linux
 Copyright (C) 1985, 2004,
  Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/tekkaman/ /) C-Kermit>send /home/tekkaman/development/share/zImage.img

C-kermit 는 전송 을 시작 하고 전송 인터페이스 를 표시 하 며 전송 진 도 를 동적 으로 표시 합 니 다.C-Kermit 8.0.211, 10 Apr 2004, MAGI-Linux

   Current Directory: /home/tekkaman/&#65533;&#65533;~L&#65533;~]&#65533;
Communication Device: /dev/ttyUSB0
 Communication Speed: 115200
              Parity: none
         RTT/Timeout: 01 / 02
             SENDING: /home/tekkaman/development/share/zImage.img => zImage.img
           File Type: BINARY
           File Size: 2277540
        Percent Done: 19 
/////////-

                          ...10...20...30...40...50...60...70...80...90..100
 Estimated Time Left: 00:03:35
  Transfer Rate, CPS: 8536
        Window Slots: 1 of 1
         Packet Type: D
        Packet Count: 557
       Packet Length: 1000
         Error Count: 0
          Last Error:
        Last Message:

X to cancel file, Z to cancel group, <CR> to resend last packet,
E to send Error packet, ^C to quit immediately, ^L to refresh screen.

전송 이 끝 난 후 c 를 입력 하고 U-boot 의 직렬 인터페이스 로 돌아 갑 니 다.[u-boot@MINI2440]# loadb
## Ready for binary (kermit) download to 0x30008000 at 115200 bps...

(Back at MAGI-Linux)
----------------------------------------------------
C-Kermit 8.0.211, 10 Apr 2004, for Linux
 Copyright (C) 1985, 2004,
  Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/tekkaman/ /) C-Kermit>send /home/tekkaman/development/share/zImage.img
(/home/tekkaman/ /) C-Kermit>c
Connecting to /dev/ttyUSB0, speed 115200
 Escape character: Ctrl-\ (ASCII 28, FS): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
## Total Size = 0x0022c0a4 = 2277540 Bytes
## Start Addr = 0x30008000

(4)네트워크 명령
    네트워크 카드 구동 에 문제 가 없다 면 네트워크 를 통 해 파일 을 개발 판 으로 전송 할 수 있 습 니 다.이것 은 직렬 포트 보다 훨씬 빠 릅 니 다.개발 판 과 컴퓨터 를 교차 망 으로 직접 연결 할 수도 있 고 일반 직렬 망 으로 공유 기 를 연결 할 수도 있 으 며 컴퓨터 에 연결 할 수도 있 습 니 다.하지만 네트워크 를 설정 하고 방화벽 을 닫 는 것 을 기억 하 세 요.   먼저 네트워크 가 통 했 는 지 테스트 합 니 다.현재 개발 판 은 ping 명령 을 사용 하여 ping 컴퓨터 가 통 하 는 지 확인 합 니 다.[u-boot@MINI2440]# ping 192.168.1.100 
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
host 192.168.1.100 is alive

나타 나 면:[u-boot@MINI2440]# ping 192.168.1.100
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
ping failed; host 192.168.1.100 is not alive

이렇게 하면 ping 이 통 하지 않 는 일 은 1.U-boot 네트워크 카드 구동 에 문제 가 있 습 니 다.2.U-boot 네트워크 프로 토 콜 지연 설정 에 문제 가 있 습 니 다.3.네트워크 매개 변수 설정 문제,예 를 들 어 IP 등 호스트 와 Target 에 문제 가 있 을 수 있 습 니 다.Host 는 IPv 6 를 닫 는 것 이 좋 습 니 다.이 유 를 찾 을 수 없 으 니 Wireshark 로 가방 을 잡 아 보 세 요.
네트워크 가 원활 하 다 면 아래 명령 을 사용 하여 tftp 디 렉 터 리 나 nfs 디 렉 터 리 에서 SDRAM 으로 파일 을 다운로드 할 수 있 습 니 다.명령:dhcp    - boot image via network using DHCP/TFTP protocol rarpboot- boot image via network using RARP/TFTP protocol nfs     - boot image via network using NFS protocol tftpboot- boot image via network using TFTP protocol bootp   - boot image via network using BOOTP/TFTP protocol 이 명령 의 형식 은 모두<명령>[목적 SDRAM 주소][호스트 IP:]파일 이름]입 니 다.
메모:dhcp,rarpboot 또는 bootp 등 기능 을 사용 하려 면 공유 기 나 Host 의 지원 이 필요 합 니 다.[목적 SDRAM 주소]를 입력 하지 않 으 면 시스템 은 컴 파일 할 때 정 의 된 CONFIG 입 니 다.SYS_LOAD_ADDR 을 목적 으로 하 는 SDRAM 주 소 는 tftpboot 와 nfs 명령 이[호스트 IP:]를 정의 하지 않 으 면 ENV 의 server rip 다른 명령 을 사용 하여[호스트 IP:]를 정의 해 야 합 니 다.그렇지 않 으 면 동적 IP 서 비 스 를 제공 하 는 호스트 IP 를[호스트 IP:]로 사용 합 니 다.
사용 사례:[u-boot@MINI2440]# nfs 0x30008000 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]# tftp 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]# dhcp 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
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.1.101
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: ##################
done
Bytes transferred = 256220 (3e8dc hex)
[u-boot@MINI2440]# bootp 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
BOOTP broadcast 1
BOOTP broadcast 2
DHCP client bound to address 192.168.1.101
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: ##################
done
Bytes transferred = 256220 (3e8dc hex)
[u-boot@MINI2440]# rarpboot 192.168.1.100:u-boot.bin

내 공유 기 는 rarp 프로 토 콜 을 열지 않 았 기 때문에 rarpboot 를 사용 할 수 없습니다.dhcp 나 bootp 를 사용 하 는 것 도 중요 하거나 Host 가 지원 합 니 다.
(5)낸 드 플래시 조작 명령
자주 사용 하 는 Nand Flash 명령 은 다음 과 같 습 니 다.
지령
기능.
nand info
사용 가능 한 낸 드 플래시 보이 기
nand device [dev]
현재 사용 중인 Nand Flash 보이 거나 설정
nand read  addr off  size
Nand Flash 읽 기 명령,Nand 에서 off 오프셋 주소 읽 기 size SDRAM 까지 바이트 데이터 addr 주소.
nand write   addr off  size
Nand Flash 태 우기 명령,SDRAM 의 addr 주소 의 size 바이트 의 데 이 터 를 Nand 로 태 웠 습 니 다. off 주소 이동.
nand write[.yaffs[1]]    addr off size
태 워 쓰기 yaffs 이미지 전용 명령,.yaffs 1 for 512+16 NAND
nand erase [clean] [off size]
Nand Flash 지우 기 명령,Nand Flash 지우 기 off 주소 바이트 데이터
nand bad
Nand Flash 의 나 쁜 조각 보이 기
nand dump[.oob] off
Nand Flash 의 데이터 보이 기(16 진수)
nand scrub
OOB 를 포함 하여 전체 Nand Flash 의 데 이 터 를 철저히 지 웁 니 다.소프트웨어 고장 난 블록 표 지 를 지 울 수 있 습 니 다.
nand markbad off
표시 Nand 의 off 주소 의 블록 을 나 쁜 블록 으로 이동 합 니 다.
 사용 사례:
  [u-boot@MINI2440]# nand info

Device 0: NAND 128MiB 3,3V 8-bit, sector size 128 KiB
[u-boot@MINI2440]# nand device 0
Device 0: NAND 128MiB 3,3V 8-bit... is now current device
[u-boot@MINI2440]# nand read 0x30008000 0x60000 200000

NAND read: device 0 offset 0x60000, size 0x200000
 2097152 bytes read: OK
[u-boot@MINI2440]# nand bad

Device 0 bad blocks:
  030a0000
  030c0000
  030e0000
  07ee0000
[u-boot@MINI2440]# nand markbad 0x500000
block 0x00500000 successfully marked as bad
[u-boot@MINI2440]# nand bad 

Device 0 bad blocks:
  00500000
  030a0000
  030c0000
  030e0000
  07ee0000
[u-boot@MINI2440]# nand scrub

NAND scrub: device 0 whole chip
Warning: scrub option will erase all factory set bad 
         There is no reliable way to recover them.
         Use this command only for testing purposes if you
         are sure of what you are 

Really scrub this NAND flash? <y/N>
Erasing at 0x2f4000008000000 -- 0% complete.
NAND 128MiB 3,3V 8-bit: MTD Erase failure: -5

NAND 128MiB 3,3V 8-bit: MTD Erase failure: -5

NAND 128MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0x7ea000008000000 -- 0% complete.
NAND 128MiB 3,3V 8-bit: MTD Erase failure: -5
Erasing at 0x7fe000008000000 -- 0% complete.
OK
[u-boot@MINI2440]# nand bad

Device 0 bad blocks:
  030a0000
  030c0000
  030e0000
  07ee0000
[u-boot@MINI2440]# nand dump 0x8000
Page 00008000 dump:
    ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
         ( )
OOB:
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
[u-boot@MINI2440]# tftp 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 write 0x30008000 0 40000

NAND write: device 0 offset 0x0, size 0x40000
Writing at 0x2000000020000 -- 100% is complete. 262144 bytes written: OK
[u-boot@MINI2440]# nand dump 0x8000
Page 00008000 dump:
    00 00 53 e1 01 00 00 2a 15 40 e0 e3 19 00 00 ea
         ( )
    60 30 97 e5 03 00 54 e1 f6 ff ff ba 00 40 a0 e3
OOB:
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    ff ff ff ff ff ff ff ff
    65 a9 6b f3 ff 33 fc 30
    f3 33 cf 33 0f f0 ff 00
    cc 0f 59 55 57 96 a5 5b


    nboot 명령 도 Nand Flash 읽 기 명령 입 니 다.Nand Flash 의 offset 오프셋 주소 의 커 널 이미 지 를 SDRAM 의 loadAddr 위치 로 읽 습 니 다.커 널 이미지(mkimage 로 처 리 된)의 끝 을 자동 으로 읽 기 때문에 읽 기 크기 를 제시 하지 않 아 도 됩 니 다.형식:nboot  loadAddr  dev  offset 사용 범례:[u-boot@MINI2440]# tftp 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]# nand erase 0x100000 300000

NAND erase: device 0 offset 0x100000, size 0x300000
Erasing at 0x3e000001800000 -- 0% complete.
OK
[u-boot@MINI2440]# nand write 0x30008000 0x100000 300000

NAND write: device 0 offset 0x100000, size 0x300000
Writing at 0x3e000000020000 -- 100% is complete. 3145728 bytes written: OK
[u-boot@MINI2440]# nand device 0
Device 0: NAND 128MiB 3,3V 8-bit... is now current device
[u-boot@MINI2440]# nboot 30008000 0 0x100000

Loading from NAND 128MiB 3,3V 8-bit, offset 0x100000
   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

 [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.(tekkaman@MAGI-Linux) (gcc version 4.3.(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
( )

좋은 웹페이지 즐겨찾기