가) H/W 파악 Device Driver 점검

어떤핀이 어떤 소자에 연결되어있는지 CPU의 레지스터들은 어떤 존재하고, 어떻게 설정해야하는지, 화면출력은 어떤 디바이스를 통해서 하는건지 , 해상도는 어떤지 방식이며 무엇인지 어떤 디바이스들이 연결되고 드라이버는 있는지없는지 디바이스와 CPU가 연결된 방식은 무엇인지 먼저 H/W를 점검한다.


나) 레퍼런스 보드로 관련자료 수집 (회로도,데이터시트,검증된 BSP 등)

포팅하려는 OS가 이미올라간 보드의 회로도와 os관련 자료(bsp)를 확보하는 일이다. 이것을 확보하게 된다면 레퍼런스 보드와의 공통점과 차이점만 밝히면서 쉽게 포팅작업을 진행할수 있다.


다) BSP 포팅 (bootloader, kernel, file system)

Bootloader, kernel , filesystem 등을 Image,바이너리로 지원해주지 않는다면 BSP를 만들 Builder를 사용해야합니다. 참고로 Freescale Imx6 quad SABRE SD 보드에 필요한 BSP를 LTIB(Linux Target Image Builder)를 사용해서 u-Boot.bin, uImage 등을 만들어냈다. SD Card를 메모리로 사용하기때문에 dd 명령어로 부트로더와 커널이미지를 복사한후 file system를 세팅해서 마무리 지었다.


라) 각종 드라이버 (LCD)등에 대한 포팅

포팅과정중에 흔하게 수정하는것이LCD, GPIO등이다. LCD의 종류를 알지못해서 드라이버가 없는경우도 있어 수정 및 작성으로 새로 만들어야하는경우도 있지만 표준 VGA를 통해서 처리할수도있습니다. GPIO라 불리는 핀들은 General Perpose IO라 하여 범용으로 쓰이는 IO핀들이다. 번용이다보니 붙는 위치도 개수도 다양합니다. 그리고 레퍼런스에 없는 디바이스 드라이버는 따로 제작을 해야합니다.


마) 디버깅

OS를 만들었다면 돌려보고 프로그램도 구동하면서 문제가없는지 확인해야합니다.

+ Recent posts