Show GN: yss Embeded operating system

2 days ago 10

ARM Cortex-M 기반에서 동작하는 운영체제이자 임베디드 개발 프레임워크입니다.

2007년부터 취미로 개발을 시작해 출퇴근 길과 주말에 조금씩 작업했습니다. 2015년부터 지금까지 근무했던 회사들의 상용 제품 개발에 적용되었고 개발이 완료되어 해당 제품은 시중에 판매되고 있습니다.

펌웨어 개발용 OS이지만 C++11문법을 적극 도입해 상당부분의 요소를 객체지향적으로 사용할 수 있도록 했습니다.

주변 장치를 시작으로 부품들까지도 class로 정의하고 공통 모델은 HAL 개념의 부모 클래스를 정의하여 MCU가 바뀌어도 어플리케이션에서 재사용이 가능하도록 구현했습니다.

거북선(https://github.com/mymy49/TurtleShip)이라는 임베디드 GUI 라이브러리를 작성했습니다. 2006년도에 자바 언어를 접하며 직관적인 모델에 반해 C++로 흉내를 내보았고 전반적으로 그때 형태를 많이 모방하고 있습니다.

거북선 라이브러리를 직접 사용하는 것은 아니고 완성된 TFT-LCD 드라이버(https://github.com/mymy49/2.8inch_TFT_Touch_Shield_Rev2.1)에 포함되어 간접적으로 사용합니다.

스케줄러는 기본적으로 라운드로빈 방식으로 사용하고, RTOS 요소로 signal, trigger를 지원합니다. 직접 구현한 FAT32(읽기 전용)를 지원하고, 요즘은 AI의 도움을 받아 BLE 스택을 구현 해보고 있습니다.

C++이 펌웨어에서 이 정도 강점을 갖는다는 매력을 어필하고 싶습니다. 아래 링크는 예제 프로젝트입니다.

https://github.com/mymy49/nRF52840-DK_example
https://github.com/mymy49/NuMaker-M251KG_example
https://github.com/mymy49/GM100
https://github.com/mymy49/MAX40109EVSYS_example
https://github.com/mymy49/STM32F746/…

Read Entire Article