SCV/OS 를 분석하는 첫 번째 문서로서 컴파일과 관련한 환경 설정에 대해서 알아본다.

디렉토리 구조

#ls
apps        Config.in  hal      io      language  release    service
bootloader  error      include  kernel  Makefile  Rules.mak  tool

디렉토리 구조는 다음과 같다.

이름 설명
apps 사용자 애플리케이션 코드
bootloader 부트로더 코드
docs 사용자 메뉴얼문서
kernel 커널 코드
hal CPU CORE 에 관련한 코드
dev 디바이스 드라이버 코드(serial, flash, lcd etc)
error 에러처리 관련한 코드
release 최종적인 커널 이미지가 생성되는 디렉토리
tool 컴파일을 하는데 필요한 ncurse 코드
language 기존의 언어에서 구현된 함수 중에 필요한 코드
service 서비스(메모리 할당 etc) 관련 코드

파일은 다음과 같다.

이름 설명
Config.in menuconfig 실행시 필요한 메뉴 구성 파일
Makefile 컴파일 시 사용
Rules.mak Makefile 에서 include 함

컴파일 모드

기본적으로 'make menuconfig' 를 이용해서 필요한 커널 모듈을 선택하면 해당하는 파일이 컴파일 되는 구조를 가지고 있다.
그 외에도 여러가지 컴파일 방법을 지원한다.

명령어 설명
menuconfig ncurse 기반의 컴파일 설정
config 각 항목을 일일이 입력 선택하는 컴파일 설정
oldconfig .config 파일을 읽어들여 컴파일 설정
randconfig 모든 항목을 랜덤하게 선택하여 컴파일 설정
defconfig 기본적(default)으로 제공하는 .defconfig 파일을 읽어들여 컴파일 설정
allyesconfig 모든 항목을 yes 로 선택하여 컴파일 설정
allnoconfig 모든 항목을 no 로 선택하여 컴파일 설정
clean 오브젝트 파일(.o, .bin) 과 커널 이미지를 삭제
allclean clean 을 포함하고, ncurse 관련(mconf, conf) 오브젝트 파일 삭제
tags tags 파일 생성
  • computer/rtcclab/scv_os_메뉴얼-_1.컴파일.txt
  • Last modified: 3 years ago
  • by likewind