OS/Embedded OS

2장 개발 환경 구성하기

gwanghwi.west 2021. 8. 14. 23:07

1. 개발 환경 구성하기

개발 환경은 윈도우, 맥, 리눅스 다 사용 가능합니다

윈도우 에서는 WSL을 리눅스와 맥은 거의 동일하게 작동합니다.

제 환경은 macOS Catalina Version 10.15.7 (Macbook Pro 2017)에서 진행합니다.

 

2. 컴파일러, QEMU설치하기

맥에서 코딩을 진행하지만 실제로 동작하는 OS의 하드웨어는 ARM 이기때문에 ARM용 컴파일러를 사용해야 합니다. 즉, 컴파일을 실행하는 환경 (macOS)과 컴파일의 결과물 (ARM)이 실행될 환경이 다를 경우 사용하는 것을크로스 컴파일러(cross-compiler)라고 합니다.

 

“brew”

컴파일러를 설치하기전에 맥북에 brew를 설치해야 합니다.

https://brew.sh 에서 설치를 진행합니다. 설치 스크립트를 복사에 터미널에 복사합니다.

 

“brew install gcc-arm-embedded” for macOS or “gcc-arm-none-eabi” for Linux

이름의 의미는 ‘gcc-arm-플랫폼-ABI-타입’ 인데 플랫폼에서 linux와 none 두 가지가 있습니다. Linux는 ARM용으로 동작하는 리눅스의 실행 파일을 만드는 것이 목적이므로 none이 맞습니다. none은 플랫폼이 없이 날것 그대로 ARM바이너리를 생성합니다. 목적은 펌웨어 만들기 이므로 none으로 다운로드합니다. ABI는 C언어 함수 호출 규약입니다. 이 내용은 부록 A.2절에 있습니다. 다운로드가 완료되면. arm-none-eabi-gcc -v 로 확인합니다.

 

“brew install qemu” for macOS or “qemu-system-arm” for Linux

QEMU는 x86과 ARM등 여러 환경을 가상머신으로 사용할 수 있는 에뮬레이터 입니다. 설치 완료 확인은 qemu-system-arm –-version으로 확인 합니다. 그리고 어떤 ARM 하드웨어를 에뮬레이트 하는 지 알고 싶다면 qemu-system-arm -M ? 명령으로 확인합니다. 이 책에서는 realview-pb-a8 입니다. 

 

"brew install gdb" for macOS or "gdb-multiarch" for Linux

gdb 디버거 입니다. mac에서는 그냥 gdb를 설치하시면 되고 리눅스 유저분들은 gdb-multiarch를 설치하시면 됩니다. 책에서는 arm-none-eabi-gdb를 설치하라고 되있지만 리눅스 버전 18.04 이후로는 gdb-multiarch로 통합된 것 같습니다. 설치 확인은 arm-none-eabi-gdb -v로 확인 가능합니다.