SCV/OS 를 설명하기 위한 문서이다. 처음 SCV/OS 를 접하는 사람들이 읽어서 이해하는 것을 목표로 한다.
들어가기 전에
작품명 | SCV/OS(Simple Configurable Verify) OS |
기간 | 2007. 1 ~ 2007. 6 |
개발환경 | OS(Linux(redhat 9)), Language(ARM assembler, C), Hardware(ARM9, PXA255), TOOL(Toolchain gcc 기반) |
프로젝트 요약 | 임베디드 시스템 환경에서 소프트웨어와 하드웨어를 손쉽게 검증할 수 있는 기능을 가진 RTOS 이다. 여러가지의 서로 다른 디바이스가 만들어진 임베디드 시스템에서 사용자가 검증할 하드웨어나 소프트웨어를 선택하여 커널을 만들고 이를 실행하여 검증할 수 있다 |
구현 내용 | 커널과 부트로더를 만들었고, 아키텍처는 arm 와 pxa255 기반에서 동작한다. 컴파일러는 gcc-3.3.4 툴체인을 사용한다. 또한 좀더 flexible 한 컴파일 환경을 위해 ncurses 를 사용했다. |
강점 | 보드가 만들어졌을 때, h/w 를 검증하는 작업을 scv/os 를 이용해서 제대로 동작하는지 검증해볼 수 있다. 또한, 보드에서 실행될 s/w 가 제대로 동작하는지를 검증한다 |
전체적인 시스템 아키텍처
소프트웨어 아키텍처
전체적인 디렉토리 구조는 다음과 같다.
디렉토리 | 설명 |
bootloader | 부트로더를 위한 코드가 들어 있다 |
bootloader/arm920t | 아키텍처별로 나눴는데, arm920t 용 start.S 파일 |
bootloader/pxa255 | pxa255 용 start.S 파일 나중에 ifdef 를 이용해서 통합할 예정 |
apps | 순수 application 코드 |
bin | scvos 가 아닌 순수 컴파일을 하는 데 필요한 코드들이 들어 있다 |
bin/kconfig | ncurse 코드 |
scvos | scvos 커널 |
scvos/arch | 아키텍처 별로 정보들에 관한 코드(cpu.h) |
scvos/arch/arm920t | arm920t 에 관한 특별한 코드(커널 초기화 코드) |
scvos/arch/pxa255 | pxa255 에 관한 특별한 코드(커널 초기화 코드) |
scvos/drivers | 디바이스 드라이버 코드 |
scvos/include | 전체적으로 인클루드할 코드 |
scvos/kernel | 커널의 핵심 코드 |
scvos/platform | 미정 |
obj | 오브젝트 파일들 |
obj/bootloader | 부트로더 오브젝트 파일 |
obj/kernel | 커널 오브젝트 파일 |
include | 컴파일 설정 디렉토리 |
include/config | 컴파일 설정 파일 |
image | 최종 이미지 파일 |