포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.
간단한 uBoot 사용 및 환경 설정 방법
1) 현재 환경 설정 검토 및 저장
uBoot에서 현재의 환경 설정을 검토하는 방법과 변경된 환경 설정을 저장하는 명령을 각각 제공하고 있습니다.
환경 설정을 변경 후 변경된 환경 설정을 앞으로 부팅 시에 계속 사용하고 싶다면 아래의 명령을 통하여 환경 설정을 검토 및 저장을 할 수 있습니다.
▣ 현재의 환경 설정 검토
SysLab_MP2530F> printenv
▣ 현재의 환경 설정을 저장
SysLab_MP2530F> saveenv
2) TCP/IP 환경 설정 설정 방법
uBoot에서 Ethernet를 이용하여 소프트웨어를 타깃보드로 다운로드 하기 위해서는 우선 IP 주소의 환경 설정이 필요합니다. IP 주소를 변경하는 방법은 다음과 같습니다.
▣ IP 주소 설정
SysLab_MP2530F> setenv ipaddr [ IP 주소 ]
▣ Subnet-Mask 설정
SysLab_MP2530F> setenv netmask [ Subnet-Mask ]
▣ 게이트웨이 설정
SysLab_MP2530F> setenv gatewayip [ 게이트웨이 주소 ]
▣ 호스트 시스템(소프트웨어 다운로드 서버)의 IP 주소 변경
SysLab_MP2530F> setenv serverip [ 호스트 시스템 IP 주소 ]
3) TFTP를 이용한 파일 다운로드 방법
TFTP를 이용하여 호스트 PC에 저장된 파일을 타깃 보드로 다운로드 할 수 있습니다.
호스트 PC에서 전송된 파일은 타깃 보드의 메모리 0x0200_0000 번지로 저장됩니다.
SysLab_MP2530F> tftp 02000000 [ 다운로드 파일 이름 ]
4) NAND Flash 관련 명령
uBoot는 NAND Flash 메모리 제어와 관련된 강력하고 다양한 기능들을 제공 합니다. 이를 이용하여, NAND Flash 포멧 및 TFTP를 이용하여 타깃 보드의 메모리에 저장된 파일을 NAND Flash에 기록하는 등의 작업이 가능 합니다.
▣ NAND Flash에서 사용되는 옵셋 개념
NAND Flash에서 사용되는 옵셋은 Byte 용량을 16진수로 변환한 값을 사용 합니다. 예를 들어 256Kbyte 용량을 16진수로 환산하면 0x4_0000 이 됩니다.
그리고 4MByte의 경우 16진수로 환산했을 경우 0x40_0000이 됩니다. 이를 그대로 NAND Flash 명령의 인자 값으로 적용하여 사용 합니다.
▣ NAND Flash 삭제
SysLab_MP2530F> nand erase [ 시작 옵셋 ] [ 삭제 할 크기 ]
예) NAND Flash의 256KByte 지점에서 4MByte의 저장된 데이터를 삭제할 경우
SysLab_MP2530F> nand erase 0x40000 0x400000
▣ NAND Flash 기록
NAND Flash의 기록 명령은 메모리에 저장된 데이터를 NAND Flash로 기록하는 것을 의미 합니다.
따라서, 이 명령어의 인자로는 기록할 데이터가 저장된 메모리 주소와, NAND Flash의 시작 옵셋과 기록할 크기가 들어갑니다. NAND Flash 관련 명령에서 용량 관련 값들은 모두 16진수로 입력합니다.
SysLab_MP2530F> nand write [ 데이터 저장 메모리 주소 ] [ 기록 시작 옵셋 ] [ 기록 크기 ]
예) TFTP로 0x0200_0000 메모리 주소에 저장된 데이터를 NAND Flash의 256KByte 지점에서 4MByte 만큼 데이터를 기록할 경우
SysLab_MP2530F> nand write 02000000 40000 400000
▣ NAND Flash 로우 레벨 포멧
NAND Flash를 공장 초기 값으로 되돌리는 명령으로, NAND Flash에 기록되어있던 잘못된 블록 정보 및 기타 저장 정보들을 모두 삭제 합니다. NAND Flash가 제대로 동작하지 않을 때 사용합니다.
SysLab_MP2530F> nand scrub
5) 리눅스 커널 부트 커맨드 설정
uBoot에서는 리눅스 커널의 부트 커맨드의 설정이 가능합니다. uBoot에서 리눅스의 부트 커맨드를 설정하면, 리눅스 커널은 uBoot에서 설정된 부트 커맨드를 받아와서 부팅을 진행 합니다. 부트 커맨드의 설정 방법은 다음과 같습니다.
SysLab_MP2530F> setenv bootargs [ 커널 부트 커맨드 ]
6) 부팅 자동화 명령 설정
uBoot에서 자동으로 부팅 시 수행할 명령들을 설정할 수 있습니다. 한 개의 명령 또는 다수의 명령이 사용가능하며, 다수의 명령 사용시 명령과 명령과의 구분은 “;”(세미콜론)으로 구분합니다.
SysLab_MP2530F> setenv bootcmd [ 명령 1 ] ; [ 명령 2 ] ; [ 명령 3 ]
7) 적용된 환경 설정으로 부팅 수행
uBoot에서 설정한 환경을 이용하여 부팅하는 명령은 다음과 같습니다.
SysLab_MP2530F> boot
8) SysLab_MP2530F용 환경 설정 예제
다음은 SysLab_MP2530F 모듈용 환경 설정 예제 입니다. uBoot 환경 설정 시 참고하시기 바랍니다.
▣ TFTP 및 NFS를 이용한 부팅 방법
부팅 시 자동으로 TFTP를 이용하여 커널 이미지를 다운로드 받고, 리눅스 커널은 NFS를 이용하여 파일 시스템을 마운트 하여 부팅하는 환경 설정 입니다. 보통 디버깅 용도로 많이 사용됩니다.
SysLab_MP2530F> setenv bootcmd tftp 02000000 uImage-SL2530;bootm 02000000
SysLab_MP2530F> setenv bootargs mem=64M root=/dev/nfs rw nfsroot=192.168.1.15:/nfsroot/RootFS-SL2530 ip=192.168.1.85:192.168.1.15:192.168.1.1:255.255.255.0::eth0:off console=ttySAC3,115200n81 ethaddr=08:00:3e:26:0a:5b
▣ NAND Flash에서의 부팅 방법
NAND Flash에 저장된 커널 및 루트 파일 시스템을 이용하여 부팅하는 명령 입니다. 호스트 PC의 도움 없이 타깃 보드로 단독 부팅 수행 시에 사용 합니다.
SysLab_MP2530F> setenv bootargs mem=64M root=/dev/mtdblock0 rootfstype=yaffs console=ttySAC3,115200n81 ip=192.168.1.85:192.168.1.15:192.168.1.1:255.255.255.0::eth0:off ethaddr=08:00:3e:26:0a:5b
SysLab_MP2530F> setenv bootcmd nand read 02000000 44000 400000;bootm 02000000
▣ NAND Flash에 커널 기록
TFTP를 이용하여 호스트 PC로부터 커널 이미지를 다운로드 받아 NAND Flash에 기록하는 명령 입니다.
SysLab_MP2530F> nand erase 44000 400000
SysLab_MP2530F> tftp 02000000 zImage-2530
SysLab_MP2530F> nand write 02000000 44000 $(filesize)
엄청 자세하게 설명해주셨네요 ^^ 역시 재훈님이라능~