* Embedded OS System 구축
H/W : 1) cpu - processor, SoC
- 테스트 장비 : Intel xScale-PXA270
- ARM 사 (Architecture만 사용)
S/W: 1) OS - Linux, Windows CE
- Application
- Device Driver
* 개발 환경 구축
: Target(Board)에 O.S.를 장착하는 과정
<O.S.>
1) Boot loader
2) Kernel
3) File system
host와 target이 같은 OS를 사용하지만, CPU가 다르다. --> compiler가 달라야 한다.
host Target
1. i386 1. ARM
2. Linux 2. Linux
3. compiler 3. compiler
(i386용) (ARM용)
O.S. Arch
=======================================================
Windows i386 : Visual C++ 6.0 compiler
ARM : Embedded Visual C++ 4.0 compiler
--------------------------------------------
Linux i386 : gcc
ARM : arm-linux-gcc
======================================================
일반적인 프로그램을 실행 가능하도록 하는 방법
Source program( .c) --> Compiler --> Object program( .o, 기계어, relocatable) --> Linkege Editor(연계 편집) --> Execute program ( .exe, executable)
Object program에서 Execuate program으로 가는 것을 Load Module 이라고도 한다. 예전에는 Load Module 하는 것을 독립적인 프로그램을 사용해서 섰었는데(즉 .exe 파일을 만들지 않았음), 그 과정이 귀찮기 때문에 그 과정을 아예 .exe 파일 안에 넣어 버리기 위한 프로그램이 필요한데, 이것이 Linkege Editor가 하는 일이다.
relocatable : 재배치 가능
executable : 실행 가능
excutable은 외부 메모리(HDD) 같은 것으로부터 CPU가 실행 시킬 수 있는 메모리로 load 하는 과정이다. CPU내의 PC(Program Counter)가 load된 실행파일의 처음 위치를 가리켜서 실제로 CPU가 그 일을 할 수 있게 되어 있다. exe 파일은 각 명령어마다 메모리상에 어디로 load될것인지 주소가 적혀 있다.(상대 주소를 기준으로 함)
relocatable의 경우 executable 과 다르게 각 명령어 마다 어디로 load할것인지 그 주소가 적혀 있지 않다. (윈도우의 경우 relocatable의 경우에도 자동으로 0번지 부터 넣어 준다.) 따라서 일반 데이타 파일 처럼 올라 가기 때문에 메모리에 load된 후에 다시 재배치해야 한다.
실제로 relocatable 의 경우에도 주소만 제대로 알고 있으면 실행이 가능하다. relocatable 파일, 즉 .o 파일을 .exe로 만들어서 실행하면 load 된다. 하지만 entry point인 main의 위치를 모르기 때문에 실행이 되지 않는다. 즉 PC에게 main의 위치만 알려 주면 relocatable의 경우도 실행이 가능하다.
여기서 왜 main 함수가 필요한지 알 수 있다. 일반적으로 system 프로그램의 경우 main 없이 프로그래밍을 해도 상관없다. PC에게 시작 address를 알려 주면 상관 없기 때문에... 일반적인 exe 파일은 main의 시작 address를 OS가 PC에게 알려 주므로 자동으로 정상적으로 실행이 가능해 진다.
* 일반적인 윈도우 시스템의 부팅 과정
1. Power On
2. CMOS(Bios program) 초기화 : 붙어 있는 외부 장치(메모리, 하드디스크, 키보드, 등등)들을 CPU에게 통보해 주는 것
3. Boot Loader (LILO, GRUB 등)
4. O.S. 가 존재 하는지 확인, 있으면 5번, 없으면 에러를 띄운다.
5. Kernel로드
6. File System
* Embedded System의 부팅 과정(CMOS가 없음)
1. Power On
2. Boot Loader
3. Start.S 초기화
4. Key, No 하면 5번으로, Yes 하면 4.1.
4.1. Command prompt
5. Kernel
6. File System
받은 트랙백이 없고,
댓글이 없습니다.


글
댓글을 달아 주세요
댓글 RSS 주소 : http://www.cipher.pe.kr/tt/cipher/rss/comment/9댓글 ATOM 주소 : http://www.cipher.pe.kr/tt/cipher/atom/comment/9