Project/simpleOS2012. 1. 7. 23:03
3학년 2학기 임베디드 시스템 / 실험 과목을 수강하고 난 후 아쉬운 점이 많아서 방학기간 동안에 임베디드쪽으로 뭔가 더 해볼까 생각했었는데, 마침 전에 사 두었던 ATmega128 Board가 생각나 이걸 가지고 뭔가 해보기로 맘먹었다.

그럼 이제 뭘 하느냐가 남았는데, 단순히 External I/O로 장난치는건 돈도 많이 들고 별로 재미도 없을 것 같아서.. 간단히 RTOS 하나를 만들어 보기로 하였다. RTOS라고 할 것도 없지만.. 목표하는 대략적인 구현 기능은 다음과 같다.

- Preemptive Multi-Task Scheduler (필수)
- Semaphore / Mutex 등 Critical Section Control을 위한 IPC (필수)
- Task Creation 및 Delete / Delay 등을 위한 몇 가지 API Library(필수)
- Message Queue나 Shared Memory 또는 기타 다른 IPC (선택) 
- Event (선택)
- UART (선택) 

처음엔 Timer Interrupt만 할줄 알면 속도가 붙겠지 생각했는데, 생각보다 어렵고 양도 많다... Datasheet도 조만간 여유 되는 대로 제본을 고려해야겠고, uC/OS나 freeRTOS  실제 OS Source Code도 계속 쳐다보고 있다. 특히 임베디드 시스템 시간에 uC/OS 을 배운 것이 큰 도움이 되고 있다. 

아마 수행 기간은 방학을 거의 다 잡아 먹을 듯 하고, 방학 안에 끝낼 수 있을지도 미지수다. 하지만  어차피 선택 부분은 부가적인 기능이기 떄문에 필수라고 적어놓은 것들은 꼭 해내고 싶다.  
Posted by 머리