본문 바로가기

윈도우10에서 Raspberry Pi Pico C/C++ 빌드 환경 설정하기(nmake 사용)

by rudals.kim 2022. 7. 13. 댓글 개
반응형

라즈베리파이 피코 개발환경이 익숙하지 못하여 처음에는 CircuitPython을 주로 사용하여 테스트 및 개발하는 용도로 사용하였습니다. 그러다가 이제는 좀 익숙해져서인지 C/C++ SDK 빌드 환경을 사용해 보고 싶어 라즈베리파이 피코 개발 관련 문서를 살펴보게 되었습니다.

 

아래 빌드 환경 설정은 라즈베리파이 피코의 getting-started-with-pico.pdf 문서의 챕터 9.2를 참고한 내용입니다.

윈도우10 환경에서 Pico용 C/C++ SDK를 사용하여 제공되는 예제들을 빌드 테스트해 보았습니다.

 

설치 프로그램

먼저 SDK 빌드 환경을 설정하기 위해서는 아래 프로그램을 먼저 설치해야 합니다.

  • ARM GCC compiler
  • CMake (아래 Build Tools for Visual Studio 2019를 설치하면 cmake가 설치되므로 따로 설치할 필요가 없습니다.)
  • Build Tools for Visual Studio 2019 (Visual Studio 2022 build tools을 설치할 경우 Developer Command Prompt 창을 띄우면 TeamExplorer 관련 에러가 발생되어 2019 버전을 사용하였습니다.)
  • Python
  • Git

제가 받은 프로그램들의 버전은 아래와 같습니다.

 

설치 방법

1. ARM GCC compiler 설치

일반적인 프로그램 설치와 동일하며 설치 도중 아래 설정창이 나오면 Add path to environment variable에 체크를 한 후 설치를 마칩니다.

 

2. Python 설치

일반적인 프로그램 설치와 동일하며 아래쪽에 있는 Add Python 2.10 to PATH를 체크 후 설치합니다.

설치 도중 아래 설정창이 나오면 Disable path length limit를 클릭하여 설치를 마칩니다.

 

3. Git 설치

일반적인 프로그램 설치와 동일하게 설치합니다.

4. Visual Studio Build Tools 2019 설치

설치 프로그램 실행 후 "C++를 사용한 데스크톱 개발"에 체크를 한 후 설치를 합니다.

 

PICO SDK & Example 다운로드

윈도우10 시작에서 Developer Command Prompt for VS 2019를 실행해 줍니다.

먼저 아래 명령어들을 사용하여 빌드 관련 툴들이 정상적으로 설치가 되었는지 확인해 봅니다.

cmake --version
arm-none-eabi-gcc --version
git --version
nmake

 

아래 이미지는 위 명령어를 실행한 결과인데 빌드 관련 프로그램들이 모두 정상적으로 설치가 된 것을 확인할 수 있었습니다.

제 경우 C:\pico 라는 작업 디렉터리로 만든 후 아래 명령어들을 사용하여 pico-sdk와 pico-examples를 다운로드하였습니다.

C:\pico> git clone -b master https://github.com/raspberrypi/pico-sdk.git
C:\pico> cd pico-sdk
C:\pico\pico-sdk> git submodule update --init
C:\pico\pico-sdk> cd ..
C:\pico> git clone -b master https://github.com/raspberrypi/pico-examples.git

 

아래는 위 명령어를 사용하여 수행한 결과창입니다.

pico-examples 디렉터리로 이동 후 아래 명령어를 사용하여 예제를 빌드해 봅니다.

C:\pico> cd pico-examples
C:\pico\pico-examples> mkdir build
C:\pico\pico-examples> cd build
C:\pico\pico-examples> set PICO_SDK_PATH=..\..\pico-sdk
C:\pico\pico-examples\build> cmake -G "NMake Makefiles" ..
C:\pico\pico-examples\build> nmake

 

가장 중요한 점은 위 명령어 중간쯤에 있는 PICO_SDK_PATH를 꼭 설정해 주셔야 합니다.

예제 빌드시 이 환경 변수를 참고하여 SDK가 같이 빌드되기 때문에 정확한 상대 경로를 설정해야 빌드시 에러가 발생되지 않습니다. 그런 후 Visual Studio에서 사용되는 NMake 형식의 makefile을 생성 후 nmake 명령어를 사용하여 빌드하면 됩니다. 얼마 정도의 빌드 시간 후 아래와 같이 모든 예제들이 정상적으로 빌드가 되었습니다.

빌드가 완료되면 build 디렉터리 내에 여러 가지 예제 바이너리들이 생성되는데 그중 가장 기본적인 blink 디렉터리에 있는 blink.uf2 파일을 테스트해 보았습니다. 라즈베리파이 피코의 BootSel 버튼을 누른 상태에서 USB 케이블을 꽂으면 RP2040 드라이브가 나타나는데 이 드라이브에 blink.uf2 파일을 복사해 넣습니다. 복사가 완료되면 자동으로 피코 보드가 재부팅되고 녹색 LED가 깜박이면서 정상 동작됩니다.

만약에 소스코드를 수정한 경우 Developer Command Prompt 창에서 nmake 명령어로 다시 빌드하면 변경된 내용만 다시 빌드됩니다. 이렇게 Command Prompt 창에서 빌드를 할 수도 있고 Visual Studio Code 편집기에서 바로 빌드할 수 있는 방법도 있습니다. 위에서 실행된 Developer Command Prompt for VS 2019를 실행시킨 창에서 code 명령어로 Visual Studio Code 편집기를 실행시켜 봅니다.

VSCode가 실행되면 CMake 환경을 사용하기 위해 확장 프로그램인 CMake Tools 확장 프로그램을 설치합니다.

설치가 완료되면 오른쪽에 톱니바퀴가 있는데 이것을 클릭하여 나오는 팝업 메뉴 중 맨 아래의 설정 메뉴를 클릭합니다.

CMake tools의 설정중 'Cmake: Configure Environment'에 Add Item 버튼을 클릭하여 PICO_SDK_PATH 환경변수를 설정해 줍니다.

다음으로 'Cmake: Generator'에서 nmake용 파일 생성을 위해 'NMake Makefiles'를 입력합니다.

메뉴의 File -> Open Folder를 선택하여 pico-exmaples 폴더를 선택합니다.

피코 예제 폴더가 선택이 되면 자동으로 아래 빌드 Kit를 선택하는 팝업이 나오는데 arm-none-eabi를 선택합니다.

만약 Kit 선택 팝업창이 나오지 않는다면 에디터 아래 부분의 'No Kit Selected' 부분을 클릭하여 수동으로 설정하면 됩니다.

cmake 환경과 kit 설정이 완료되었다면 아래 부분의 Build를 클릭합니다.

아래 OUTPUT창에 현재 진행 중인 빌드 로그가 나오며 완료될 때까지 기다리면 진행률 100%가 나오며 모든 예제들이 정상적으로 빌드가 됩니다.

위 2가지 빌드 방법 중 편리한 방법을 사용하시면 됩니다.

제 경우 아무래도 VSCode를 사용하여 코드 작성 후 바로 빌드할 수 있는 방법이 편리한 듯 보입니다. 

 

 

참고 사이트

 

Raspberry Pi Documentation - The C/C++ SDK

The official documentation for Raspberry Pi computers and microcontrollers

www.raspberrypi.com

 

반응형

댓글