FreeRTOS 빌드해서 QEMU 에서 실행하기
FreeRTOS는 실시간 임베디드 시스템 개발을 위한 무료 및 오픈 소스 실시간 운영체제(OS)로, 작고 경량한 커널을 제공합니다. 이 커널은 다양한 아키텍처와 마이크로컨트롤러에서 동작 가능하며, 태스크 스케줄링, 세마포어, 큐 등의 기능을 제공하여 복잡한 임베디드 애플리케이션을 개발할 때 유용합니다. FreeRTOS는 커뮤니티와 널리 사용되는 도구와 통합되어 있어서 확장성과 지속적인 개발을 지원합니다.
이번 포스팅에서는 FreeRTOS를 빌드하고 ARM Cortex-M 시뮬레이터인 QEMU에서 실행하는 간단한 예제를 설명합니다. 아래 명령어로 FreeRTOS GitHub 저장소에서 소스 코드를 복제(clone)하고, 하위 모듈(submodules)도 함께 가져옵니다.
git clone https://github.com/FreeRTOS/FreeRTOS.git --recurse-submodules
"FreeRTOS/Demo/CORTEX_MPS2_QEMU_IAR_GCC" 폴더로 이동해서 VSCode 를 실행합니다. VSCode 의 탐색기에서 launch.json 을 열고 아래와 같이 miDebuggerPath 를 수정합니다.
{
// 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": [
{
...
"miDebuggerPath": "arm-none-eabi-gdb",
...
}
]
}
VSCode에서 왼쪽 상단에 있는 디버그 아이콘(일반적으로 벌레 모양)을 클릭합니다. 그러면 디버그 패널이 열립니다. 다음으로, 디버그 패널 상단의 플레이 버튼(녹색 삼각형 모양)을 클릭하여 디버깅을 시작합니다. 이 과정을 통해 먼저 프로젝트의 소스 코드를 빌드하고, 그 결과물이 실행 가능한 바이너리 파일로 컴파일됩니다. 그런 다음 QEMU를 사용하여 FreeRTOS 애플리케이션이 실행됩니다.
디버그 패널에서는 여러 디버깅 옵션을 사용하여 프로그램의 동작을 추적하고 문제를 해결할 수 있습니다. 이를 통해 코드의 동작을 자세히 이해하고 디버깅하는 데 도움이 됩니다.