Don't think! Just do it!

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

RTOS 5

[nRF52840 + Zephyr] #7. RTOS 기본

RTOS 가 기본적으로 제공하는 기능들이 있어. 5가지 정도인데 아래를 보자구! 👇👇👇 1. Task(Thread) management 2. Memory management 3. Time management 4. Inter-task communication 5. Synchronization 모든 rtos가 비슷해. (제퍼도 마찬가지!) 그래서 난 새로운 rtos를 사용해야 할 때 항상 저 기준을 적용하고 있어. Thread management Thread 혹은 Task의 생성, 삭제, 정지, 재시작 등등의 기능을 말하는 거야. Delay로 많이 사용하는 sleep도 thread의 기능 중에 하나임. 제퍼에서도 k_thread_create, k_thread_suspend 와 같은 함수들이 있어. Memor..

[nRF52840 + Zephyr] #0. nRF and Zephyr

NRF52 시리즈 중 하나를 아주 잠깐 사용해본 적이 있었어. 어렴풋한 기억으로는 RTOS에 블루투스 스택이 돌아가고 있었고 유저는 유저 테스크에서만 한정적으로 코드를 만졌던 것 같아 -_-;;; 스쳐지나가는 프로젝트라 깊게도 안팠지만 그 때 뭐랄까.. 좀 나쁜 이미지가 있었는데 이제와서 다시 보니~ 제퍼 OS를 사용하고 있네? 오~ 👇👇👇 사용자 환경도 매우 잘 구축되어 있고 예제도 충실해! 이것 저것 테스트해보고 나니 이건 뭐 신세계! 개인적으로 느끼기에 지금까지 경험해본 임베디드 개발 환경 중 단연 으뜸이라 말할 수 있었어. 블루투스 쪽 스택이나 프로파일도 알아야 하고 제퍼 RTOS도 해야 한다는 압박감이 있는 걸 알지만 nordic에서 제공하는 vscode extension을 설치하고 예제를 몇개..

Zephyr 새 프로젝트 만들기

2022.07.30 - [임베디드 소프트웨어/Zephyr] - Zephyr RTOS 시작하기 - 설치 및 기본 예제 Zephyr RTOS 시작하기 - 설치 및 기본 예제 사실 제퍼 공홈 getting started 문서 보면 다 있는 내용들인데.. 다만 영어일 뿐이지. 그래도 조금씩 애매한 부분들이 있는데 그런 거 위주로 설명하도록 할게. 아래는 Zephyr getting started👇👇 https://d engschool.tistory.com 제퍼 기본 예제(Blinky)를 해봤어. 그런데 그런데 이 예제는 zephyrproject 폴더 안에 프로젝트를 생성하는 방식이라서 여러가지 새로운 프로젝트가 추가되면 뭐.. 복잡해서 보겠나? 그래서 깔끔하게 새로운 폴더 위치에 새로운 프로젝트를 생성해보자구. ..

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

사실 제퍼 공홈 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 th..

Zephyr RTOS

난 임베디드 펌웨어를 작성할 때 RTOS를 선호해. 왜냐면.. 좋으니까!!! 예전에는 믿지 못하겠다며 안쓰는 사람들도 많았어. 물론 AC전압이 흐르고 모터를 돌리고 히터를 가열시키고 하는 임베디드 펌웨어 특성상 안정성이 최우선이겠지만.. 그런데 그건 -_-;; RTOS의 안정성에 문제가 있다기 보다... 내 손가락과 두뇌 안정성에 문제가 있지 않을까? ㅋㅋㅋㅋㅋ 그리고 나는 무엇보다 전체 코드를 while(1)에다가 폴링으로 때려 박는 방식이 너무 끔찍했어. 폴링으로 펌웨어를 개발을 하다보면 디버깅하거나 기능을 수정할 때 해당 기능과 관련이 없는 부분에서 새로운 오류가 발생하는 경우가 많고(특히 타이밍이 중요한 어플리케이션) memory overflow가 무서워서 malloc이나 free 사용을 못하기도..

반응형