리눅스 포팅(Linux Porting)
프로그래밍/Embedded System 2009. 3. 17. 13:41 |포팅(Porting)
응용 프로그램이 다른 OS에서 수행될 수 있도록 새로운 환경으로 이식하는 과정이다. Linux Porting이란 새로운 하드웨어에서 Linux가 동작하도록 하는 것이다.
1. 리눅스가 동작하기 위해서 필요한 조건
리눅스가 동작하기 위한 최소 조건
- 32Bit Processor
- 4Mbyte RAM
부트로더
- 하드웨어 초기화 : CPU와 RAM이 서로 통신(Read/Write)이 가능하게 설정
- 커널 이미지를 메모리의 특정 영역에 복사 후 커널 이미지 첫 주소로 점프
루트 파일 시스템
2. 툴 체인(Toolchain)
Target Device의 소프트웨어 개발을 위해 필요한 Host System의 Target Cross Compile 환경이다. 소스 코드를 빌드하여 자신이 원하는 Toolchain을 구성할 수도 있으며 이미 빌드되어 바이너리 형태로 배포되어 있는 툴체인을 이용할 수 있다.
툴체인을 소스코드를 통해 설치하는 방법
다운로드 사이트 : http://www.gnuarm.com/
3. 부트로더(BootLoader)
참조보드는 Delft University of Technology에서 개발한 BLOB(BootLoader Object)이라는 부트로더를 사용한다. PXA25x/27x 기반 프로세서 지원
First stage loader
- Second stage loader가 동작하기 위한 하드웨어 초기화를 수행하는 부분
- GPIO 초기화 : 참조 보드의 GPIO 맵을 참고하여 GPIO 방향. Alternate Function. 핀 값 설정
- 메모리 초기화 : SDRAM을 사용하기 위하여 SDRAM값 초기화
Second stage loader
- 부트로더에서 사용하는 하드웨어 초기화
Serial : Debugging UART를 통하여 부팅 메세지를 보기 위함
Flash memory : 부트로더 명령을 통해 플래시 메모리에 데이터를 쓰기 위함
- 부트로더 명령어
xdownload : 데이터를 Xmodem을 통하여 다운로드