Don't think! Just do it!

종합 IT 기술 정체성 카오스 블로그! 이... 이곳은 어디지?

임베디드 하드웨어/Raspberry PI Pico

Raspberry Pi Pico 시작하기(MacOS)

방피터 2022. 8. 5. 12:35

Raspberry PI Pico가 뭔지 모르는 사람은 쿨하게 뒤로가지 누르자!

위즈네트 RP2040 모듈가지고 Zephyr를 하고 있었는데 오리지널 Raspberry Pi Pico(이하 pico라 할거임ㅋ)도 할 일이(돈받고ㅋ) 생겨서 같이 함 해볼려고. 무슨 MCU고 소프트웨어 스택이고 간에 무조건 시작은 공홈에 getting started야 ㅋㅋㅋ getting started 문서를 찾으러 가자고.

RPI 공홈 Document->Microcontrollers -> RPI PICO

공홈에서 RPI에서는 Document -> Microcontrollers -> RPI Pico 그 다음 또 Documentation -> Raspberry Pi Pico 선택

getting started 찾음 ㅋ

여기에 getting stared 문서가 있네. 클릭하면 잘 정리된 PDF 문서가 새창으로 뜨는데 거기서 시작해보자구. 영어가 많아. 영국에서 만든거니까 크으~ 영국~~ 암튼 Blinky까지 빠르게 진행해보자구. 여러번 말했지만 난 MacOS 기준이야~

 

Chapter1. Quick Pico Setup은 MacOS에서는 동작하지 않아. 그러니까 스킵하고 그 다음 Chapter2. SDK에서 시작. SDK랑 example를 다운로드 합시다. 루트에 pico라는 폴더를 만들고👇

$ cd ~/
$ mkdir pico
$ cd pico

그 안에 pico-sdk github repository를 복제. submodule update로 나머지 디펜던시들 모두 설치해주고 pico example도 다운로드.👇 이러면 일단 다운로드는 끝~

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

이 다음에는 cmake이나 gcc-arm같은 툴체인을 다운로드 받아. 메뉴얼에는 sudo apt install 사용해서 다운받으라고 되어 있는데 맥에서 apt 안되고 대신 brew를 쓰지. 그래서 시도. Cmake같은 건 다운로드가 되는데 gcc-arm 툴체인 같은 건 없다고 나오네...

homebrew로는 gcc-arm-none-eabi를 다운받을 수 없다.

 그럼 수동으로 설치해줘야지 뭐~ gcc-arm 툴체인 최신 버전은 11.2 👇👇 아래에서 다운로드 받을 수 있어.

https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/downloads

 

Arm GNU Toolchain | Arm GNU Toolchain Downloads – Arm Developer

Download the Arm GNU Toolchain, an open-source suite of tools for C, C++, and Assembly programming for the Arm architecture.

developer.arm.com

하지만 난 버전을 맞춰야 하는 이슈가 있어서 10.3 버전을 설치할거라 👇  아래 링크에서 다운로드 할거임. 선택은 니자유.

https://developer.arm.com/downloads/-/gnu-rm

 

Downloads | GNU Arm Embedded Toolchain Downloads – Arm Developer

Download the GNU Embedded Toolchain for ARM, an open-source suite of tools for C, C++, and Assembly programming for 32-bit ARM Cortex-A, ARM Cortex-M and Cortex-R families

developer.arm.com

MacOS용 설치파일을 다운로드 받고(확장자가 pkg) 완료되면 클릭해서 설치.

파일 크다~

 

gcc-arm 툴체인 설치

나머지 libnewlib-arm-none-eabi과 build-essential도 설치해야 하나? 포함되어 있나? 잘 몰라 일단 무식하게 나가보자. 툴체인 설치했으니까 빌드는 되겠지 ㅋ pico-examples 폴더로 이동해서 build 폴더를 만들어👇

$ cd pico-examples
$ mkdir build
$ cd build

 

추가) 프로젝트를 하다보니 PICO_SDK_PATH를 환경 변수에 추가하는 건 문제가 좀 있어. 개개인마다 폴더 환경이나 사용중인 sdk 버전이 다르고 특히 github로 코드를 쉐어할 때 사용자들에게 일일이 PATH를 맞추라고 하는 건... 굉장히 큰 비효율이지. 그래서 결론은 pico sdk를 프로젝트에 포함시키고 경로는 CMakeLists.txt 에 삽입하는 것으로, 또 git submodule로 pico-sdk를 등록해서 배포하는 방식으로 관리하는 게 좋은 것 같아. 이미 따라한 사람들 미안!


그리고 PICO_SDK_PATH 환경변수로 설정하고 👇..... 하는 데 이러면 맘에 안들지.. 그치?

$ export PICO_SDK_PATH=../../pico-sdk

터미널 껐다 켜면 다 없어지니까 .zshrc 파일에 써주자고 vim으로 ~/.zshrc 열고

% vim ~/.zshrc

export로 절대 경로 추가👇 후 저장하고 나가서

export PICO_SDK_PATH="Users/여기니폴더/pico/pico-sdk"

설정된 환경변수 곧바로 적용.

% source ~/.zshrc

그리고 올바르게 PICO_SDK_PATH가 적용되었는지 확인하면 끝~ 이제 빌드를 시도해 봅시다.

% printenv PICO_SDK_PATH

그대로 build 폴더에서 cmake 를 입력하면

% cmake ..

에러가 주르르륵! arm-none-eabi-gcc가 없다는 에러. 응 인정~ arm-none-eabi-gcc도 환경 변수에 추가해줘야 한다는!

gcc-arm-none-eabi도 환경변수에 추가해 주자.

설치할 때 특별한 조치를 하지 않았다면 gcc-arm-none-eabi 바이너리가 위치한 곳은 "/Applications/ARM/bin"

또 vim 으로 .zshrc 파일 열고👇

% vim ~/.zshrc

아래와 같이 환경 변수 추가👇

export PATH="$PATH:/Applications/ARM/bin"

바로 적용!

% source ~/.zshrc

그리고 나서 cmake .. 실행하면 아래와 같이 잘 실행됌.

성공적인 cmake!

이제 비어 있던 build 폴더가 예제들로 가득 찼어. 이제 실제 바이너리 파일을 만들 차례야.

build/blink 폴더로 이동해서 아래와 같이 실행👇 여기서 원래는 옵션이 -j4인데 job을 4개 생성해서 돌리는 거래. raspberry pi 4는 코어가 4개라서 적당하다나 뭐라나.... ㅋㅋㅋㅋㅋ 난 맥 스튜디오잖아!!! 크크크크크(광기) j10 막 돌려돌려 ㅋ

% make -j10

드디어 빌드 완료

이제 플레시에 바이너리 파일을 쓰자고.

수전증 아님. 알콜 중독 아님.

RPI pico의 BOOTSEL 버튼을 누른채로 USB 연결하면 RPI-RP2라는 디스크가 보이는데 여기에 복사하면 끝. blink.uf2 파일 드레그해서 복사해도 되고 아니면 

RPI-RP2

아래처럼 터미널에서 명령어로 복사해도 되고. 개취!

% cp blink.uf2 /Volumes/RPI-RP2

프로그램을 완료하면 영롱하게 깜빡이는 LED를 볼 수가 있지.

아.. .이제 그만 보고 싶다. LED 예제..

getting started 문서 아직 초입이야 ㅋㅋ 다음에는 vscode에서 설정하고 hello world 정도 찍어보자고. 안녕!

반응형

'임베디드 하드웨어 > Raspberry PI Pico' 카테고리의 다른 글

rpi-pico new project 만들기  (0) 2022.08.09
rpi-pico vscode debug 설정 (MacOS)  (0) 2022.08.08
rpi-pico vscode 설정(MacOS)  (0) 2022.08.06
rpi-pico Hello world!(MacOS)  (2) 2022.08.06