본문 바로가기

연구 노트/Embedded

Windows 10에서 RTOS 개발환경 구축하기 2 - 개발 도구 설치하기

앞서 Windows 10의 WSL 2를 활성화하는 과정을 설명하였습니다. 이제는 일반 리눅스와 거의 똑같이 RTOS 개발 환경을 만들 수 있습니다. 필요한 개발 도구 목록은 다음과 같습니다.

  • 컴파일러: gcc (gcc-arm-none-eabi)
  • 하드웨어 가상화 도구: QEMU
  • 디버거: gdb (gdb-multiarch)
  • 빌드 도구: make

각 도구 설치 방법은 apt 패키지 관리자 기준으로 정리하였습니다.

gcc 컴파일러 설치하기

  1. 아래의 명령으로 컴파일러를 설치합니다.

    $ sudo apt install gcc-arm-none-eabi
  2. 설치가 완료되었다면 확인을 위해 설치된 컴파일러 버전을 출력해봅니다.

    $ arm-none-eabi-gcc -v
    ...(생략)...
    gcc version 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] (15:9-2019-q4-0ubuntu1)

가상화 도구 QEMU 설치하기

  1. 아래의 명령으로 QEMU를 설치합니다.

    $ sudo apt install qemu-system-arm
  2. 설치된 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
  3. 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