Don't think! Just do it!

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

임베디드 소프트웨어/Zephyr

Zephyr RTOS 시작하기 - 설치 및 기본 예제

방피터 2022. 7. 30. 13:45

사실 제퍼 공홈 getting started 문서 보면 다 있는 내용들인데.. 다만 영어일 뿐이지. 그래도 조금씩 애매한 부분들이 있는데 그런 거 위주로 설명하도록 할게. 아래는 Zephyr getting started👇👇

https://docs.zephyrproject.org/latest/develop/getting_started/index.html

 

Getting Started Guide — Zephyr Project Documentation

This is the documentation for the latest (main) development branch of Zephyr. If you are looking for the documentation of previous releases, use the drop-down menu on the left and select the desired version. Getting Started Guide Follow this guide to: Set

docs.zephyrproject.org

난 맥유저라 맥 기준으로 설명할텐데 제퍼는 리눅스, 윈도우, 맥 모두 지원해. 터미널 환경에서 작업하는게 익숙한 사람들은 getting started 에 가서 자신의 OS에 맞게 선택하고 따라해보도록 하자.

리눅스, 맥, 윈도우 모두 지원한다.

그런데 윈도우 환경에 익숙한 사람들. IAR, stm studio같은 IDE만 사용했던 사람들은 약간 힘들거라고 봐. 제퍼가 리눅스 파운데이션에서 시작해서 그런지 터미널 환경에서 작업하는게 기본이고 빌드나 플래시에 쓰는 것도 마찬가지야. 약간 진입 장벽이 있지. 그렇다고 아예 IDE가 없는건 아냐. VS CODE에 Platform IO 익스텐션을 추가하는 방식으로 사용할 수도 있는데 내가 사용하려는 RP2040은 Framework을 Arduino만 지원해 Zephyr는 아직인가봐. 그리고 새로운 보드를 추가하는 옵션도 없는 거 같더라고.

Platform io에서 RP-2040은 현재 Arduino만 지원함.

그래서 난 처음부터 끝까지 터미널 환경에서 작업했어. 다시 말하지만 맥 환경에서 하고 있으니까 다른 OS 사용하는 사람들은 알아서 화이팅하자 ㅋㅋㅋ

 

업데이트 될 수 있으니까 이 블로그 그대로 따라하지 말고 공식 홈페이지부터 확인하자고! 제발~~

 

1. homebrew 패키지 매니저 설치

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. brew(homebrew)로 필요한 패키지들 설치

brew install cmake ninja gperf python3 ccache qemu dtc wget libmagic

3. west 설치 👉 west로 제퍼 프로젝트 빌드, 플래시 프로그래밍, 디버그 같은 것들을 할 수 있어. 제퍼를 위한 라이브러리도 설치할 수 있고. 그리고 pip3를 사용해서 west를 설치하니까 python3가 설치되어 있어야겠지?

pip3 install -U west

4. west로 zephyr 프로젝트를 초기화하고 업데이트해.

west init ~/zephyrproject
cd ~/zephyrproject
west update

5. 제퍼 프로젝트 cmake package export: 제퍼 프로젝트 빌드하는데 필요한 코드를 cmake가 알아서 로드되도록 하는 명령.

west zephyr-export

6. pip3로 scripts/requirements.txt 파일 안에 있는 python 디펜던시 package 설치해주기

pip3 install -r ~/zephyrproject/zephyr/scripts/requirements.txt

7. 제퍼 SDK 설치하기 여기서 애플 M1 코어 사용하는 사람은 x86_64를 aarch64로 변경하라고 나오는데.... 난 이거 못봄.. 걍 막설치 ㅠㅠ 나중에 문제가 될까? 아니고 난 다시 해야겠네 ㅠㅠ 다 잘 돌긴 하던데... 그래도 나중에 문제가 될 수 있으니... 니들은 실수하지 말고~

 

애플 이전 모델

cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/zephyr-sdk-0.14.2_macos-x86_64.tar.gz
wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/sha256.sum | shasum --check --ignore-missing

애플 M1 모델

cd ~
wget https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/zephyr-sdk-0.14.2_macos-aarch64.tar.gz
wget -O - https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v0.14.2/sha256.sum | shasum --check --ignore-missing

8. 다운받은거 압축 해제

애플 이전 모델

tar xvf zephyr-sdk-0.14.2_macos-x86_64.tar.gz

애플 M1 모델

tar xvf zephyr-sdk-0.14.2_macos-aarch64.tar.gz

9. 제퍼 SDK 셋업 실행.

cd zephyr-sdk-0.14.2
./setup.sh

 

설치는 여기까지만 하면 완료. 그 다음에는 뭐 Getting started에 내용대로 LED 깜빡이는 예제를 돌려보자구.

cd ~/zephyrproject/zephyr
west build -p auto -b rpi_pico samples/basic/blinky

이렇게 하면 열심히 build를 해서 ~/zephyrproject/zephyr/build/zephyr 폴더에 바이너리 파일을 생성해내지. -_- 폴더 드럽게 복잡하네. 이거 해결하는 방법은 다음에 하고 생성된 바이너리 파일들중에서 우리에게 필요한 rp2040용 바이너리는 uf2 확장자를 사용하고 있는 "zephyr.uf2" 파일이야. 이 파일을 플래시에 프로그래밍하자고. 지금 SWD 디버거가 없어서 W5500-EVB-PICO 보드를 USB memory로 인식시킨 후 바이너리 파일을 복사하는 방식으로 플래시에 프로그래밍을 할거야.

w5500-evb-pico

방법은 간단해 boot sel 토글 스위치를 누른 상태로 USB 케이블을 연결하면 끝.

W5500 evb pico - USB 디스크로 부트

이렇게 연결하면 RPI-RP2라는 이름의 새로운 USB디스크 장치가 검색되는데(맥 OS 기준) 여기에 아까 생성된 "zephyr.uf2" 파일을 복사해 넣으면 끝이야. 그러면 USB 디스크는 곧바로 사라지고 LED깜빡거리는 제퍼 프로그램도 동작해.

zephyr 바이너리 이미지 RP2040에 프로그래밍

아래와 같이 2초 주기로 깜빡거리는 걸 볼 수 있으면 성공이야. 쉽다고? ㅎㅎ 이건 뭐 그냥 되어야만 하는 거니까 ㅋ

기본 Binky 예제 동작 모습

이제 진짜 개발환경을 구축해야지ㅋ 프로젝트 폴더도 새로 생성해서 github에도 올려야 하고, 그리고 저 w5500-evb-pico는 제퍼에서 공식 지원한는 보드가 아니야. 그래서 새로 디바이스 트리도 작성해야 하지. 이래저래 할 일들 천지야 ㅋㅋ

다음에는 프로젝트 폴더 만들고 환경변수 설정하는 부분을 같이 해봅시다! 안녕!

반응형

'임베디드 소프트웨어 > Zephyr' 카테고리의 다른 글

Zephyr 새 보드 만들기 #3  (0) 2022.09.24
Zephyr 새 보드 만들기 #2  (1) 2022.09.23
Zephyr 새 보드 만들기  (1) 2022.09.22
Zephyr 새 프로젝트 만들기  (0) 2022.08.01
Zephyr RTOS  (0) 2022.07.29