부트로더 제작 11편. blob 과 MMU - 2009/02/10 23:15
응용프로그램을 플래시에 저장하기
다음의 명령을 이용하면 응용프로그램을 플래시에 저장하여 필요할때 사용할 수도 있다.
blob> flash kernel [ENTER]
해당 응용프로그램은 리눅스 커널이미지를 저장하는 플래시 영역에 마찬가지로 기록된다.
이후 부터는 보드의 blob 부팅후 자동적으로 응용프로그램이 로드(load) 되어 실행된다.
주의사항!
flash kernel 명령을 사용하게 되면 기존의 플래시 메모리에 들어 있을지도 모르는 리눅스 커널 혹은 zImage 데이타는 사라지게 되므로 이 사실을 꼭 알고 실행하는데 주의를 바란다.
blob과 MMU
현재의 blob v1.07 버젼에는 ARM920T MMU 가 비활성화 되어 있다. 특별한 이유는 없고 현재 기능 구현이 안되어 있다고 보면 된다.
이후의 과정에서 필요한 경우 MMU 기능을 적용할 것이다. 캐시(cache) 또한 마찬가지로 비활성화 되어 있다.
아는 사람은 잘 알고 있는 내용이지만 uboot 라는 부트로더도 또한 MMU와 D캐시가 비활성화 되어 있다.
따라서, uboot 상에서 MMU및 데이타 캐시를 활성화 시키려면 추가의 노력이 필요하다. 한편 명령어 캐시(I-캐시)는
활성화 되어 있다. 따라서 이로 인한 큰 불편함은 없는 것이 또한 사실이다.
한가지 더 이야기 하자면
현재의 blob 에는 어떠한 인터럽트 또한 사용되고 있지 않다. 이 사실을 추가적으로 확인하기 바란다.
금번의 칼럼을 마지막으로 제2부 부트로더 제작 편을 모두 마칠것이다.
그러면 다음 제3부 응용 장치의 활용편에서 다시 뵐 것을 약속드리며 blob에서 사용되는 uu[en|de]code 에 대해서 설명을 끝으로 본 칼럼을 마무리 한다.
uu[en|de]code
현재 blob 에서 파일을 다운로드 하는데 사용되는 uuencode 는 구글에서 찾아보면 다음과 같이 잘 설명되어 있다. http://www.terms.co.kr/Uuencode.htm
"
기본적으로 Uuencode가 하는 일은 파일이나 전자우편의 첨부물을 자체 바이너리 또는 비트 스트림 표현에서 7 비트 아스키 텍스트로 변환하는 것이다.
텍스트는 오래 전에 제작되어 바이너리 파일을 처리할 수 없는 시스템에서도 잘 처리될 수 있으며, 커다란 파일들을 좀더 쉽게 여러 부분으로 나누어 전송할 수 있다.
"
blob 에서는 uuencode 라는 유틸리티로 다운로드할 파일을 먼저 변형시킨후 이를 통신터미널을 이용해서 다운로드하고 blob 에서는 이를 다시 uudecode 하는 방법으로 uu[en|de]code가 사용되고 있다.
수고 하셨습니다.
posted by 가일(GUILE)
♡ 포스팅이 유익 하셨다면 E-mail로 가일의 임베디드 스쿨을 구독하세요-> 




