ARM QEMU를 이용해서 FreeRTOS 실행하기
임베디드 시스템 개발에 있어 실제 하드웨어 없이, 소프트웨어를 테스트하고 디버깅할 수 있는 환경을 구축하는 것은 매우 중요한 과제입니다. FreeRTOS도 ARM 시뮬레이터(QEmu)로 실행해볼 수 있는데요. 이 포스팅을 통해서 이 방법을 간단하게 정리해보겠습니다.
필요 항목
- Ubuntu (WSL Ubuntu 20.04로 테스트)
- ARM GDB 및 빌드 툴
- QEMU
- Git
- VSCode
설치 가이드
ARM GDB 설치하기
우분투의 apt-get 패키지 시스템으로 ARM 툴체인을 설치 가능합니다. 하지만 GDB는 별도로 설치해야하기 때문에 아래와 같이 수동으로 GDB가 포함된 ARM 툴체인을 설치하는 방법을 추천합니다.
ARM x86 크로스컴파일 GCC GDB 우분투 툴체인 설치하기
임베디드 시스템이나 ARM 기반 하드웨어를 위한 소프트웨어를 개발할 때는 x86 기반의 개발 PC에서 ARM용 실행 파일을 생성하는 크로스 컴파일 환경이 필요합니다. 이 포스팅에서는 ARM 프로세서용
embeddedai.tistory.com
QEMU 설치하기
QEMU는 다양한 하드웨어 플랫폼을 에뮬레이션할 수 있는 오픈소스 가상화 도구입니다. Ubuntu에서 다음 명령어로 설치할 수 있습니다:
sudo apt update
sudo apt install qemu-system-arm
설치가 완료되면 다음 명령어로 버전을 확인할 수 있습니다:
$ qemu-system-arm --version
QEMU emulator version 4.2.1 (Debian 1:4.2-3ubuntu6.30)
Copyright (c) 2003-2019 Fabrice Bellard and the QEMU Project developers
Git 설치 및 FreeRTOS 소스 코드 다운로드
Git이 설치되어 있지 않다면 다음 명령어로 설치할 수 있습니다:
sudo apt install git
FreeRTOS 소스 코드를 다운로드하기 위해 다음 명령어를 실행합니다:
git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules
VSCode 설정
- VSCode를 실행하고 'FreeRTOS' 폴더의 "Demo/CORTEX_MPS2_QEMU_IAR_GCC"를 Base로 엽니다.
- .vscode 폴더의 launch.json 파일을 열고 miDebuggerPath 값을 설치한 ARM GDB의 경로로 수정합니다. 아래의 그림은 "ARM GDB 설치하기"를 통해 설치했을 경우의 경로 입니다.
아래의 launch.json을 참고하세요.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Launch QEMU RTOSDemo",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/build/gcc/output/RTOSDemo.out",
"cwd": "${workspaceFolder}",
"miDebuggerPath": "/usr/share/arm-toolchain/arm-gnu-toolchain-14.2.rel1-x86_64-arm-none-eabi/bin/arm-none-eabi-gdb-py",
"miDebuggerServerAddress": "localhost:1234",
"stopAtEntry": true,
"preLaunchTask": "Run QEMU"
}
]
}
FreeRTOS 실행하기
- VSCode에 Run and Debug 탭으로 이동합니다. (벌레 버튼)
- 'Launch QEMU RTOS Demo' 옵션을 선택합니다.
- 실행 버튼을 눌러 프로젝트를 빌드하고 QEMU에서 실행합니다.
이제 QEMU에서 FreeRTOS가 실행되며, VSCode를 통해 디버깅할 수 있습니다. 브레이크포인트를 설정하고 코드를 단계별로 실행하면서 FreeRTOS의 동작을 자세히 살펴볼 수 있습니다.
관련 링크
아래 링크를 통해 FreeRTOS, QEMU, 그리고 ARM 개발 도구에 대해 더 자세히 알아볼 수 있습니다.
- FreeRTOS 공식 문서](https://www.freertos.org/documentation-and-books.html\)) - FreeRTOS에 대한 자세한 설명과 API 레퍼런스를 제공합니다.
- QEMU 사용자 매뉴얼](https://www.qemu.org/docs/master/system/index.html\)) - QEMU의 다양한 기능과 사용 방법에 대해 설명합니다.
- ARM 개발자 사이트](https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm\)) - ARM GNU 툴체인에 대한 정보와 다운로드 링크를 제공합니다.
'Hardware' 카테고리의 다른 글
라즈베리파이 5 (1) | 2024.11.28 |
---|---|
라즈베리파이 OS 설치 (1) | 2024.11.28 |