앞서 Windows 10의 WSL 2를 활성화하는 과정을 설명하였습니다. 이제는 일반 리눅스와 거의 똑같이 RTOS 개발 환경을 만들 수 있습니다. 필요한 개발 도구 목록은 다음과 같습니다.
- 컴파일러: gcc (gcc-arm-none-eabi)
- 하드웨어 가상화 도구: QEMU
- 디버거: gdb (gdb-multiarch)
- 빌드 도구: make
각 도구 설치 방법은 apt 패키지 관리자 기준으로 정리하였습니다.
gcc 컴파일러 설치하기
아래의 명령으로 컴파일러를 설치합니다.
$ sudo apt install gcc-arm-none-eabi
설치가 완료되었다면 확인을 위해 설치된 컴파일러 버전을 출력해봅니다.
$ arm-none-eabi-gcc -v ...(생략)... gcc version 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] (15:9-2019-q4-0ubuntu1)
가상화 도구 QEMU 설치하기
아래의 명령으로 QEMU를 설치합니다.
$ sudo apt install qemu-system-arm
설치된 QEMU 버전을 확인합니다.
$ qemu-system-arm --version QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.10) Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
QEMU가 지원하는 머신 목록을 확인합니다.
bash를 사용하는 경우
qemu-system-arm -m ?
라고 입력하면 됩니다. 저는 zsh를 사용하고 있는데 zsh에서는-m ?
이라는 옵션을 정상 처리하지 못하는 문제가 있었습니다.$ qemu-systme-arm --machine help // 혹은 $ qemu-systme-arm --M help Supported machines are: akita Sharp SL-C1000 (Akita) PDA (PXA270) ast2500-evb Aspeed AST2500 EVB (ARM1176) ast2600-evb Aspeed AST2600 EVB (Cortex A7) borzoi Sharp SL-C3100 (Borzoi) PDA (PXA270) canon-a1100 Canon PowerShot A1100 IS cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310) collie Sharp SL-5500 (Collie) PDA (SA-1110) connex Gumstix Connex (PXA255) cubieboard cubietech cubieboard (Cortex-A8) ...(생략)...
디버거 설치하기
디버거는 gdb를 사용합니다. 주의할 점은 gdb 중에서도 arm 아키텍처를 대상으로 실행할 수 있는 버전을 설치해야 합니다. 아래의 명령으로 설치합니다. 제가 RTOS 공부를 위해 참고하고 있는 책에서는 'gdb-arm-none-eabi'라는 패키지를 설치하라고 설명되어 있습니다만 지금은 패키지를 찾을 수 없었습니다. 대신 'gdb-multiarch'라는 패키지에 통합되었다고 합니다. 아래의 명령으로 설치합니다.
$ sudo apt install gdb-multiarch
빌드 도구 make 설치하기
빌드 자동화를 위해 필요한 도구입니다. 없어도 소스 코드를 빌드할 수 있지만, 그 과정이 매우 불편합니다. make를 잘 이용한다면 개발 효율이 매우 높아질 것입니다. 아래의 명령으로 make를 설치합니다.
$ sudo apt install make
선택 사항
현재 디렉터리 기준으로 하위 디렉터리 구조를 화면에 표시할 수 있는 도구가 있습니다. 패키지 이름은 'tree'입니다. 책에서 각 과정마다 코드와 빌드 결과물들이 어떻게 위치해 있는지 보여줄 때마다 사용하고 있었습니다. CLI 환경에서 유용하게 활용할 수 있을 것 같아 저도 설치해 보았습니다. 아래의 명령으로 'tree'를 설치할 수 있습니다.
$ sudo apt install tree
'연구 노트 > Embedded' 카테고리의 다른 글
QEMU 사용시 쉘 종류에 따라서 옵션 값이 달라지는 문제 (0) | 2021.01.20 |
---|---|
Windows 10에서 RTOS 개발환경 구축하기 3 - WSL 2에서 GUI 프로그램을 실행하기 위한 준비 (2) | 2021.01.17 |
Windows 10에서 RTOS 개발환경 구축하기 1 - WSL 2를 활성화하자 (0) | 2021.01.12 |
어셈블리 파일 확장자 .s와 .S는 다르다. (2) | 2020.12.25 |
[TM4C] ADC 초기화 과정 (0) | 2020.12.10 |