Uboot 사용(2)
63527 단어 u-boot
전송 주소,감사합니다 공유: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/��~L�~]�
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.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
( )
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
u-boot-2016.05 이식: (7), u-boot에서 파일 시스템 쓰기 지원u-boot 자체는 jffs2 포맷 파일 시스템에 대한 nand 명령을 지원하지만 yaffs2 포맷을 지원하지 않기 때문에 우리는 yaffs2 포맷 파일 시스템 명령을 지원하도록 수정하여 u-boot에서 검색.yaf...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.