[Pico SDK] 펌웨어 업로드를 도와주는 picotool 설치 (Mac)

Cover Image

[Pico SDK] ARM, macOS, VSCode 환경에서 Pico SDK 개발환경 설정

지난 포스팅에서 M2 프로세서가 사용된 MacBook에 Raspberry Pi Pico의 MCU인 RP2040의 개발환경을 설정해 보았습니다.

펌웨어 빌드까지는 스무스하게 진행이 되었는데요, 딱 한 가지 불만이 있다면 펌웨어 업로드를 위해 굳이 BOOTSEL 모드로 진입하고 굳이 또 Finder까지 켜서 업로드까지 해줘야하는 3중 귀찮음이 있었습니다.

분명히 아두이노 IDE상에서 펌웨어를 업로드할 때에는 이런 번거로운 과정이 없었는데 말이죠. 아무래도 다른 방법이 있는 것 같아 조금 검색해 보았습니다.

picotool #

GitHub - raspberrypi/picotool

GitHub - raspberrypi/picotool

Contribute to raspberrypi/picotool development by creating an account on GitHub.

github.com

그러던 중 찾게 된 것이 바로 picotool이었습니다. CLI상에서 펌웨어를 업로드할 수 있고 특정 헤더파일을 포함시키면 BOOLSEL모드도 자동으로 진입하게 해 주는 것이 주 기능이었습니다.

bash $ brew install picotool

picotool

picotool

Homebrew’s package index

formulae.brew.sh

Homebrew를 사용하면 바로 설치할 수 있었습니다.

BOOLSEL 전환 강제 #

펌웨어 상에서 pico/stdio_usb.h를 include한 후 stdio_init_all()함수를 호출하도록 코드를 수정하면 picotool에서 -f 또는 -F 옵션을 붙여 BOOLSEL로 강제 진입할 수 있습니다.

이렇게 하면 gpio 제어만 하는 blink 예제 기준 바이너리가 대략 30 KB 정도 증가하였습니다.

테스트 #

picotool을 사용해 RP2040에 펌웨어를 업로드해보았습니다.

화면 기록 2023-07-09 오후 8.16.51.mov