티스토리 뷰

심화

megaOS - 0. 시작하기 전에

Just4Fun 2016. 10. 16. 10:53

지금부터 ATmega328에서 동작 되는 RTOS를 만들어 보겠다.

편의상 이 OS의 이름을 "megaOS"라고 하겠다.


ATmega328만을 목표로 OS를 만들겠지만 ATmega128과 같은 다른 ATmega 계열의 MCU는 조금만 수정하면 쉽게 해당 MCU에서 동작시켜 볼 수 있을것이다.


여력이 된다면 실전 과정에서 ATmega뿐만 아니라 다른 종류의 MCU에도 쉽게 포팅할 수 있는 구조를 만들어 볼 생각이다.


megaOS의 기본 개념은 "eCos"라는 RTOS에서 가지고 왔다.  그럴리는 없겠지만 혹시라도 megaOS를 상용제품에 적용할 생각이 있다면 eCos 라이센스를 잘 확인하여 문제가 발생하지 않도록 주의하기 바란다.

http://ecos.sourceware.org/ 에 들어가면 eCos의 소스코드는 물론 관련 문서들도 다운 받을 수 있으므로, 이 블로그의 내용만 가지고서는 잘 이해가 안되면 원 소스를 참고하기 바란다.

또한, 가장 널리 알려진 RTOS인 uC/OS도 https://www.micrium.com/에서 많은 자료를 제공하므로 참고하면 RTOS를 이해하는데 있어 많은 도움을 받을 수 있을것이다.



megaOS 프로젝트를 진행하기 위한 기본 회로는 다음과 같다.


늘 그렇듯이 LED 하나와 UART 연결이 전부이다.


Operating System이라고 하면, 프로세스 혹은 타스크를 제어하는 커널을 비롯하여, 디바이스 드라이버, 파일 시스템, 프로토콜 스택등 많은 구성 요소들이 있지만, 이 글에서는 커널 부분에 대해서만 구현해 보는것으로 진행할 예정이다.


참고로 얘기하자면, RTOS 소스코드는 일반적인 application 프로그램에 비하여 상당히 이해하기 어렵다.  이런 이유로 어느정도의 단계까지는 프로그램의 흐름에 따른 설명으로 조금씩 조금씩 진행할 예정이다.  이 블로그 글을 이용하여 RTOS를 공부하고자 한다면 반드시 코드를 손으로 집적 입력해가면서 한걸음씩 나아갈것을 추천한다.  소스코드를 눈으로만 보면서 이해하는것과 실제로 한글자씩 코드를 입력해가며 분석하는 것은 천지차이이기 때문이다.



심화 과정 목차

'심화' 카테고리의 다른 글

megaOS - 2. 초기화  (3) 2016.10.18
megaOS - 1. 프로젝트 시작하기  (5) 2016.10.17
RTOS - Real Time Operating System  (2) 2016.10.15
ISR(Interrupt Service Routine)  (6) 2016.10.02
startup.S  (5) 2016.10.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함