SW 개발

[U-boot] fatload , extload 명령어 멈춤증상

. . . 2019. 11. 6. 16:00
반응형

uboot 테스트중에 이상이 생겨 삽질한 기록을 남긴다.

uboot 명령어를 통한 메모리에 데이터 저장

uboot 에서 특정 장치에 바이너리이미지등을 쓰기위해서 메모리에 임시적으로 데이터를 저장해야할 경우가 있다. 그럴때 쓰는명령어는 파일시스템에 따라서 fatload or ext4load 등을 쓴다.

관련 명령어들은 다음과 같다.

ext2load- load binary file from a Ext2 filesystem
ext2ls  - list files in a directory (default /)
ext4load- load binary file from a Ext4 filesystem
ext4ls  - list files in a directory (default /)
fatinfo - print information about filesystem
fatload - load binary file from a dos filesystem
fatls   - list files in a directory (default /)
fatsize - determine a file's size

문제발생

  • 증상 : fatload / ext4load 명령어를 통해서 메모리를 올렸는데... 멈춤증상이 발생하였다. fail 도아니고 성공도 아니고 그냥 멈춰있었다.;;
  • 원인 : 메모리사이즈 문제

fatload mmc 0:1 0xC0000000 u-boot.bin 와 같이 메모리를 로딩한다는것은... 0xC0000000 메모리 번지에 u-boot.bin 를 올린다는 뜻인데, u-boot.bin가 크거나 메모리 레이이웃이 잘못될경우 멈춤증상이 나타난다.

  • 해결 : 메모리의 로딩주소 (ex,0xC0000000) 를 살펴본다.
    • 이미지 로딩후에 메모리 침범이 되거나, 로딩 타겟 주소이후의 영역이 모잘랐을것이다.
    • 나같은경우는 0xC0000000 을 좀 앞당겼다. --> 다행히 0xB0000000 영역부터 비어있던 곳이라 해당 영역으로 메모리 주소를 바꾸니 해결되었다.
반응형