임베디드 OS 개발 프로젝트를 읽고 작성하였습니다.
시작하기 전에
VMware + Ubuntu를 통한 개발 환경을 구성!
한 번 날려서 다시 작성하는 글입니다................😱😭😭😢
2장 개발 환경 구성하기
2.1 컴파일러 설치하기
임베디드 시스템에서 동작하는 펌웨어를 만들려면 해당 임베디드 시스템에 맞는 컴파일러를 써야 함
ex) ARM <--> ARM용 컴파일러 / MIPS <--> MIPS용 컴파일러 / 윈도우나 리눅스에서 프로그램을 개발 <--> x86용 컴파일러
⭐ ARM에서 동작하는 펌웨어 만드는 것 => ARM용 컴파일러 설치⭐
크로스 컴파일러
컴파일을 실행하는 환경과 컴파일의 결과물이 실행될 환경이 다른 경우에 사용하는 컴파일러
GCC
리눅스와 오픈 소스 세상의 표준 컴파일러,
ARM, x86 말고도 많은 환경을 지원함
< GCC 종류 >
gcc-arm-linux-androideabi
gcc-arm-linux-gnueabi
gcc-arm-none-eabi
gcc-arm-플랫폼-ABI 타입 | ||
플랫폼 | ABI(Application Binary Interface) | |
linux | none | C 언어에서 함수 호출을 어떻게 하느냐를 정해 놓은 규약 |
ARM용으로 동작하는 리눅스의 실행 파일을 만드는 것이 목적 | 플랫폼이 없다, 날것 그대로의 ARM 바이너리를 생성해 줌 | ex) 어떤 레지스터를 몇 번째 파라미터에 배정 스택과 힙은 어떻게 쓰는지 |
⭐ 펌웨어를 만드는 것 => gcc-arm-none-eabi 사용⭐
2.2 QEMU 설치하기
x86, ARM 등 여러 환경을 가상 머신으로 사용할 수 있는 에뮬레이터
< qemu-system-arm >
- qemu-system-arm 버전 확인
qemu-system-arm --version
- machine
: qemu가 지원하는 시스템
realview-pb-a8 (RealViewPB) : 데이터시트(datasheet)를 가장 구하기 쉬운 머신
arm에서 판매하는 ARM RealView Platform Baseboard를 에뮬레이팅한 머신
'개발 > 임베디드 os 개발 프로젝트' 카테고리의 다른 글
5장 UART (3) | 2023.06.15 |
---|---|
임베디드 OS 개발 프로젝트 부록 A.1장 (0) | 2023.06.04 |
4장 부팅하기 (0) | 2023.06.04 |
3장 일단 시작하기 (0) | 2023.04.17 |
1장 임베디드 운영체제 (0) | 2023.03.28 |