VSCode + PlatformIO로 micro:bit + Zephyr RTOS 개발
6758 단어 PlatformIOCZephyrmicrobitVSCode
tl;dr
VSCode + PlatformIO 라는 현대적인 개발 환경에서 Zephyr RTOS 을 사용한 micro:bit 의 개발을 시도했습니다. Linux에서의 작업에서 설명합니다.
이사
VSCode + platformio가 좋은 것 같다는 것을 듣고 하나 시도해 보겠습니다. 수중에 micro:bit가 있었습니다만, framework 가 Arduino
, Mbed
, Zephyr RTOS
의 3택. Zephyr? 뭐야? 들은 적이 없다고 하는 것으로, 모처럼이니까 나는 이 Zephyr를 선택한다, 라고 생각한 나름입니다.
VSCode
확장 기능에 PlatformIO를 추가하면 준비 완료입니다. VSCode가 아닌 곳에서 PlatformIO를 (apt나 brew등에서) 넣고 있으면 충돌하는 것 같으니 주의합시다. (나는 처음으로 이것으로 빠졌습니다.)
udev 설정(Linux)
다음 두 줄을 적절한 파일 이름으로 /etc/udev/rules.d/
에 넣습니다.
/etc/udev/rules.d/50-myusb.rulesKERNEL=="ttyACM[0-9]*",MODE="0666"
ATTRS{product}=="*CMSIS-DAP*", MODE="660", GROUP="plugdev", TAG+="uaccess"
파일을 만들면 systemctl restart udev.service
혹은 재기동 등으로 활성화해 주세요.
프로젝트 만들기
VSCode의 왼쪽에 수직으로 나열된 아이콘의 PlatformIO를 선택하고 QUICK ACCESS
> PIO Home
> Open
> + New Project
로 이동합니다.
적절한 프로젝트 이름을 입력하고 Board를 BBC micro:bit
, Framework를 Zephyr RTOS
로 Finish. 이것뿐입니다. 간단!
프로젝트 설정
이번에는 기본적으로 빌드되지 않는 Display 인터페이스를 사용하려고 하므로 설정 파일을 하나 만듭니다. PlatformIO
> QUICK ACCESS
> PIO Home
> Open
> Open Project
에서 지금 만든 프로젝트를 엽니다. 왼쪽에 트리 표시가 나타나므로 プロジェクト名
> zephyr
를 확장합니다. 어쩌면 CMakeLists.txt
만 있다고 생각하지만, 같은 계층에 prj.conf
라는 파일을 새로 만듭니다. 내용은 다음과 같습니다.
prj.confCONFIG_DISPLAY=y
CONFIG_MICROBIT_DISPLAY=y
main.c 편집
src
에 있는 main.c
를 열고 편집합니다. 이런 느낌으로 부디.
main.c#include <zephyr.h>
#include <sys/printk.h>
#include <display/mb_display.h>
void main(void)
{
struct mb_image patterns[] = {
MB_IMAGE(
{0, 0, 0, 0, 0},
{1, 1, 0, 1, 1},
{0, 0, 0, 0, 0},
{1, 0, 0, 0, 1},
{0, 1, 1, 1, 0},
),
};
struct mb_display *dpy = mb_display_get();
mb_display_image(dpy, MB_DISPLAY_MODE_DEFAULT, SYS_FOREVER_MS, patterns, 1);
while (1) {
printk("hello, world %s\n", CONFIG_BOARD);
}
}
build & upload
VSCode 맨 아래에 체크 마크가 있다고 생각합니다. 이것을 클릭하면 빌드할 수 있습니다. 또는 PlatformIO
를 클릭하여 나타나는 PROJECT TASKS
의 Build
를 클릭해도 동일합니다. 그 때, 최하부 좌측의 아이콘의 줄의 마지막 쪽에 프로젝트명이 나와 있습니다만, 이것이 지금 작업하고 싶은 대상의 프로젝트입니다. 그렇지 않은 경우 여기를 클릭하여 선택할 수 있습니다.
이 그림이면 우단의 Default (mbdemo)
부분입니다.
뭔가 UI가 매우 알기 어려운데, 저는 VSCode도 pio도 거의 처음이므로 뭔가 더 솔직한 방법이 있으면 알려주세요.
무사히 빌드가 끝나면 micro:bit를 꽂고 체크마크 옆의 화살표(→)를 클릭합니다. 이것으로 쓰기 완료입니다! micro:bit에 표시가 나타납니다. (본 기사의 시작 부분의 사진)
시리얼 출력도 확인
코드의 마지막 무한 루프에서 printk
이것은 시리얼에 토하고 있을 것이므로 확인해 봅시다. Linux의 경우는 이런 느낌입니다. 위의 udev가 효과가 있다면 sudo가 필요하지 않습니다.
리눅스 쉘$ stty -F /dev/ttyACM0 raw 115200
$ cat /dev/ttyACM0
결론
이것으로 일종의 PlatformIO의 개발 순서를 파악할 수 있었고, Zephyr 경험자가 될 수도 있었습니다. RTOS 요소 제로이지만.
micro : bit는 mbed OS의 classic인 쪽만 대응하고 있었다고 생각하기 때문에, 보다 본격적인 RTOS를 사용하고 싶은 경우는 Zephyr가 도움이 될지도 모릅니다. 나는... 아마 더 이상 사용하지 않을 것이다.
Reference
이 문제에 관하여(VSCode + PlatformIO로 micro:bit + Zephyr RTOS 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yagshi/items/0e1f31036c9ef430a99a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
VSCode + platformio가 좋은 것 같다는 것을 듣고 하나 시도해 보겠습니다. 수중에 micro:bit가 있었습니다만, framework 가
Arduino
, Mbed
, Zephyr RTOS
의 3택. Zephyr? 뭐야? 들은 적이 없다고 하는 것으로, 모처럼이니까 나는 이 Zephyr를 선택한다, 라고 생각한 나름입니다.VSCode
확장 기능에 PlatformIO를 추가하면 준비 완료입니다. VSCode가 아닌 곳에서 PlatformIO를 (apt나 brew등에서) 넣고 있으면 충돌하는 것 같으니 주의합시다. (나는 처음으로 이것으로 빠졌습니다.)
udev 설정(Linux)
다음 두 줄을 적절한 파일 이름으로 /etc/udev/rules.d/
에 넣습니다.
/etc/udev/rules.d/50-myusb.rulesKERNEL=="ttyACM[0-9]*",MODE="0666"
ATTRS{product}=="*CMSIS-DAP*", MODE="660", GROUP="plugdev", TAG+="uaccess"
파일을 만들면 systemctl restart udev.service
혹은 재기동 등으로 활성화해 주세요.
프로젝트 만들기
VSCode의 왼쪽에 수직으로 나열된 아이콘의 PlatformIO를 선택하고 QUICK ACCESS
> PIO Home
> Open
> + New Project
로 이동합니다.
적절한 프로젝트 이름을 입력하고 Board를 BBC micro:bit
, Framework를 Zephyr RTOS
로 Finish. 이것뿐입니다. 간단!
프로젝트 설정
이번에는 기본적으로 빌드되지 않는 Display 인터페이스를 사용하려고 하므로 설정 파일을 하나 만듭니다. PlatformIO
> QUICK ACCESS
> PIO Home
> Open
> Open Project
에서 지금 만든 프로젝트를 엽니다. 왼쪽에 트리 표시가 나타나므로 プロジェクト名
> zephyr
를 확장합니다. 어쩌면 CMakeLists.txt
만 있다고 생각하지만, 같은 계층에 prj.conf
라는 파일을 새로 만듭니다. 내용은 다음과 같습니다.
prj.confCONFIG_DISPLAY=y
CONFIG_MICROBIT_DISPLAY=y
main.c 편집
src
에 있는 main.c
를 열고 편집합니다. 이런 느낌으로 부디.
main.c#include <zephyr.h>
#include <sys/printk.h>
#include <display/mb_display.h>
void main(void)
{
struct mb_image patterns[] = {
MB_IMAGE(
{0, 0, 0, 0, 0},
{1, 1, 0, 1, 1},
{0, 0, 0, 0, 0},
{1, 0, 0, 0, 1},
{0, 1, 1, 1, 0},
),
};
struct mb_display *dpy = mb_display_get();
mb_display_image(dpy, MB_DISPLAY_MODE_DEFAULT, SYS_FOREVER_MS, patterns, 1);
while (1) {
printk("hello, world %s\n", CONFIG_BOARD);
}
}
build & upload
VSCode 맨 아래에 체크 마크가 있다고 생각합니다. 이것을 클릭하면 빌드할 수 있습니다. 또는 PlatformIO
를 클릭하여 나타나는 PROJECT TASKS
의 Build
를 클릭해도 동일합니다. 그 때, 최하부 좌측의 아이콘의 줄의 마지막 쪽에 프로젝트명이 나와 있습니다만, 이것이 지금 작업하고 싶은 대상의 프로젝트입니다. 그렇지 않은 경우 여기를 클릭하여 선택할 수 있습니다.
이 그림이면 우단의 Default (mbdemo)
부분입니다.
뭔가 UI가 매우 알기 어려운데, 저는 VSCode도 pio도 거의 처음이므로 뭔가 더 솔직한 방법이 있으면 알려주세요.
무사히 빌드가 끝나면 micro:bit를 꽂고 체크마크 옆의 화살표(→)를 클릭합니다. 이것으로 쓰기 완료입니다! micro:bit에 표시가 나타납니다. (본 기사의 시작 부분의 사진)
시리얼 출력도 확인
코드의 마지막 무한 루프에서 printk
이것은 시리얼에 토하고 있을 것이므로 확인해 봅시다. Linux의 경우는 이런 느낌입니다. 위의 udev가 효과가 있다면 sudo가 필요하지 않습니다.
리눅스 쉘$ stty -F /dev/ttyACM0 raw 115200
$ cat /dev/ttyACM0
결론
이것으로 일종의 PlatformIO의 개발 순서를 파악할 수 있었고, Zephyr 경험자가 될 수도 있었습니다. RTOS 요소 제로이지만.
micro : bit는 mbed OS의 classic인 쪽만 대응하고 있었다고 생각하기 때문에, 보다 본격적인 RTOS를 사용하고 싶은 경우는 Zephyr가 도움이 될지도 모릅니다. 나는... 아마 더 이상 사용하지 않을 것이다.
Reference
이 문제에 관하여(VSCode + PlatformIO로 micro:bit + Zephyr RTOS 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yagshi/items/0e1f31036c9ef430a99a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음 두 줄을 적절한 파일 이름으로
/etc/udev/rules.d/
에 넣습니다./etc/udev/rules.d/50-myusb.rules
KERNEL=="ttyACM[0-9]*",MODE="0666"
ATTRS{product}=="*CMSIS-DAP*", MODE="660", GROUP="plugdev", TAG+="uaccess"
파일을 만들면
systemctl restart udev.service
혹은 재기동 등으로 활성화해 주세요.프로젝트 만들기
VSCode의 왼쪽에 수직으로 나열된 아이콘의 PlatformIO를 선택하고 QUICK ACCESS
> PIO Home
> Open
> + New Project
로 이동합니다.
적절한 프로젝트 이름을 입력하고 Board를 BBC micro:bit
, Framework를 Zephyr RTOS
로 Finish. 이것뿐입니다. 간단!
프로젝트 설정
이번에는 기본적으로 빌드되지 않는 Display 인터페이스를 사용하려고 하므로 설정 파일을 하나 만듭니다. PlatformIO
> QUICK ACCESS
> PIO Home
> Open
> Open Project
에서 지금 만든 프로젝트를 엽니다. 왼쪽에 트리 표시가 나타나므로 プロジェクト名
> zephyr
를 확장합니다. 어쩌면 CMakeLists.txt
만 있다고 생각하지만, 같은 계층에 prj.conf
라는 파일을 새로 만듭니다. 내용은 다음과 같습니다.
prj.confCONFIG_DISPLAY=y
CONFIG_MICROBIT_DISPLAY=y
main.c 편집
src
에 있는 main.c
를 열고 편집합니다. 이런 느낌으로 부디.
main.c#include <zephyr.h>
#include <sys/printk.h>
#include <display/mb_display.h>
void main(void)
{
struct mb_image patterns[] = {
MB_IMAGE(
{0, 0, 0, 0, 0},
{1, 1, 0, 1, 1},
{0, 0, 0, 0, 0},
{1, 0, 0, 0, 1},
{0, 1, 1, 1, 0},
),
};
struct mb_display *dpy = mb_display_get();
mb_display_image(dpy, MB_DISPLAY_MODE_DEFAULT, SYS_FOREVER_MS, patterns, 1);
while (1) {
printk("hello, world %s\n", CONFIG_BOARD);
}
}
build & upload
VSCode 맨 아래에 체크 마크가 있다고 생각합니다. 이것을 클릭하면 빌드할 수 있습니다. 또는 PlatformIO
를 클릭하여 나타나는 PROJECT TASKS
의 Build
를 클릭해도 동일합니다. 그 때, 최하부 좌측의 아이콘의 줄의 마지막 쪽에 프로젝트명이 나와 있습니다만, 이것이 지금 작업하고 싶은 대상의 프로젝트입니다. 그렇지 않은 경우 여기를 클릭하여 선택할 수 있습니다.
이 그림이면 우단의 Default (mbdemo)
부분입니다.
뭔가 UI가 매우 알기 어려운데, 저는 VSCode도 pio도 거의 처음이므로 뭔가 더 솔직한 방법이 있으면 알려주세요.
무사히 빌드가 끝나면 micro:bit를 꽂고 체크마크 옆의 화살표(→)를 클릭합니다. 이것으로 쓰기 완료입니다! micro:bit에 표시가 나타납니다. (본 기사의 시작 부분의 사진)
시리얼 출력도 확인
코드의 마지막 무한 루프에서 printk
이것은 시리얼에 토하고 있을 것이므로 확인해 봅시다. Linux의 경우는 이런 느낌입니다. 위의 udev가 효과가 있다면 sudo가 필요하지 않습니다.
리눅스 쉘$ stty -F /dev/ttyACM0 raw 115200
$ cat /dev/ttyACM0
결론
이것으로 일종의 PlatformIO의 개발 순서를 파악할 수 있었고, Zephyr 경험자가 될 수도 있었습니다. RTOS 요소 제로이지만.
micro : bit는 mbed OS의 classic인 쪽만 대응하고 있었다고 생각하기 때문에, 보다 본격적인 RTOS를 사용하고 싶은 경우는 Zephyr가 도움이 될지도 모릅니다. 나는... 아마 더 이상 사용하지 않을 것이다.
Reference
이 문제에 관하여(VSCode + PlatformIO로 micro:bit + Zephyr RTOS 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yagshi/items/0e1f31036c9ef430a99a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이번에는 기본적으로 빌드되지 않는 Display 인터페이스를 사용하려고 하므로 설정 파일을 하나 만듭니다.
PlatformIO
> QUICK ACCESS
> PIO Home
> Open
> Open Project
에서 지금 만든 프로젝트를 엽니다. 왼쪽에 트리 표시가 나타나므로 プロジェクト名
> zephyr
를 확장합니다. 어쩌면 CMakeLists.txt
만 있다고 생각하지만, 같은 계층에 prj.conf
라는 파일을 새로 만듭니다. 내용은 다음과 같습니다.prj.conf
CONFIG_DISPLAY=y
CONFIG_MICROBIT_DISPLAY=y
main.c 편집
src
에 있는 main.c
를 열고 편집합니다. 이런 느낌으로 부디.
main.c#include <zephyr.h>
#include <sys/printk.h>
#include <display/mb_display.h>
void main(void)
{
struct mb_image patterns[] = {
MB_IMAGE(
{0, 0, 0, 0, 0},
{1, 1, 0, 1, 1},
{0, 0, 0, 0, 0},
{1, 0, 0, 0, 1},
{0, 1, 1, 1, 0},
),
};
struct mb_display *dpy = mb_display_get();
mb_display_image(dpy, MB_DISPLAY_MODE_DEFAULT, SYS_FOREVER_MS, patterns, 1);
while (1) {
printk("hello, world %s\n", CONFIG_BOARD);
}
}
build & upload
VSCode 맨 아래에 체크 마크가 있다고 생각합니다. 이것을 클릭하면 빌드할 수 있습니다. 또는 PlatformIO
를 클릭하여 나타나는 PROJECT TASKS
의 Build
를 클릭해도 동일합니다. 그 때, 최하부 좌측의 아이콘의 줄의 마지막 쪽에 프로젝트명이 나와 있습니다만, 이것이 지금 작업하고 싶은 대상의 프로젝트입니다. 그렇지 않은 경우 여기를 클릭하여 선택할 수 있습니다.
이 그림이면 우단의 Default (mbdemo)
부분입니다.
뭔가 UI가 매우 알기 어려운데, 저는 VSCode도 pio도 거의 처음이므로 뭔가 더 솔직한 방법이 있으면 알려주세요.
무사히 빌드가 끝나면 micro:bit를 꽂고 체크마크 옆의 화살표(→)를 클릭합니다. 이것으로 쓰기 완료입니다! micro:bit에 표시가 나타납니다. (본 기사의 시작 부분의 사진)
시리얼 출력도 확인
코드의 마지막 무한 루프에서 printk
이것은 시리얼에 토하고 있을 것이므로 확인해 봅시다. Linux의 경우는 이런 느낌입니다. 위의 udev가 효과가 있다면 sudo가 필요하지 않습니다.
리눅스 쉘$ stty -F /dev/ttyACM0 raw 115200
$ cat /dev/ttyACM0
결론
이것으로 일종의 PlatformIO의 개발 순서를 파악할 수 있었고, Zephyr 경험자가 될 수도 있었습니다. RTOS 요소 제로이지만.
micro : bit는 mbed OS의 classic인 쪽만 대응하고 있었다고 생각하기 때문에, 보다 본격적인 RTOS를 사용하고 싶은 경우는 Zephyr가 도움이 될지도 모릅니다. 나는... 아마 더 이상 사용하지 않을 것이다.
Reference
이 문제에 관하여(VSCode + PlatformIO로 micro:bit + Zephyr RTOS 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yagshi/items/0e1f31036c9ef430a99a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
#include <zephyr.h>
#include <sys/printk.h>
#include <display/mb_display.h>
void main(void)
{
struct mb_image patterns[] = {
MB_IMAGE(
{0, 0, 0, 0, 0},
{1, 1, 0, 1, 1},
{0, 0, 0, 0, 0},
{1, 0, 0, 0, 1},
{0, 1, 1, 1, 0},
),
};
struct mb_display *dpy = mb_display_get();
mb_display_image(dpy, MB_DISPLAY_MODE_DEFAULT, SYS_FOREVER_MS, patterns, 1);
while (1) {
printk("hello, world %s\n", CONFIG_BOARD);
}
}
VSCode 맨 아래에 체크 마크가 있다고 생각합니다. 이것을 클릭하면 빌드할 수 있습니다. 또는
PlatformIO
를 클릭하여 나타나는 PROJECT TASKS
의 Build
를 클릭해도 동일합니다. 그 때, 최하부 좌측의 아이콘의 줄의 마지막 쪽에 프로젝트명이 나와 있습니다만, 이것이 지금 작업하고 싶은 대상의 프로젝트입니다. 그렇지 않은 경우 여기를 클릭하여 선택할 수 있습니다.이 그림이면 우단의
Default (mbdemo)
부분입니다.뭔가 UI가 매우 알기 어려운데, 저는 VSCode도 pio도 거의 처음이므로 뭔가 더 솔직한 방법이 있으면 알려주세요.
무사히 빌드가 끝나면 micro:bit를 꽂고 체크마크 옆의 화살표(→)를 클릭합니다. 이것으로 쓰기 완료입니다! micro:bit에 표시가 나타납니다. (본 기사의 시작 부분의 사진)
시리얼 출력도 확인
코드의 마지막 무한 루프에서 printk
이것은 시리얼에 토하고 있을 것이므로 확인해 봅시다. Linux의 경우는 이런 느낌입니다. 위의 udev가 효과가 있다면 sudo가 필요하지 않습니다.
리눅스 쉘$ stty -F /dev/ttyACM0 raw 115200
$ cat /dev/ttyACM0
결론
이것으로 일종의 PlatformIO의 개발 순서를 파악할 수 있었고, Zephyr 경험자가 될 수도 있었습니다. RTOS 요소 제로이지만.
micro : bit는 mbed OS의 classic인 쪽만 대응하고 있었다고 생각하기 때문에, 보다 본격적인 RTOS를 사용하고 싶은 경우는 Zephyr가 도움이 될지도 모릅니다. 나는... 아마 더 이상 사용하지 않을 것이다.
Reference
이 문제에 관하여(VSCode + PlatformIO로 micro:bit + Zephyr RTOS 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yagshi/items/0e1f31036c9ef430a99a
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ stty -F /dev/ttyACM0 raw 115200
$ cat /dev/ttyACM0
이것으로 일종의 PlatformIO의 개발 순서를 파악할 수 있었고, Zephyr 경험자가 될 수도 있었습니다. RTOS 요소 제로이지만.
micro : bit는 mbed OS의 classic인 쪽만 대응하고 있었다고 생각하기 때문에, 보다 본격적인 RTOS를 사용하고 싶은 경우는 Zephyr가 도움이 될지도 모릅니다. 나는... 아마 더 이상 사용하지 않을 것이다.
Reference
이 문제에 관하여(VSCode + PlatformIO로 micro:bit + Zephyr RTOS 개발), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yagshi/items/0e1f31036c9ef430a99a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)