Meta Watch(http://www.metawatch.org/)는 Texas Instruments의 MSP430F5438A 마이크로 프로세서와 CC2560 블루투스를 가진 프로그래밍 가능한 시계이다.
다음은 Metawatch의 Hardware Block diagram이다.
Metawatch는 기본적으로 FreeRTOS(freertos.org) 를 가지고 있으며 다음의 Software Block Diagram을 가진다.
Task 개수는 제한적이지 않지만 MSP430의 제한적인 메모리 떄문에 Block diagram의 Task 개수정도가 일반적이다. 각각의 Task 간에 통신은 message queue를 이용해서 가능하며 message를 alloc/free 하기 위한 시스템 버퍼 풀이 존재한다. Event 역시 message로 보내진다. 각각의 Task는 입력 message queue를 가진다.
1) Application Task
- 전화기와 bluetooth pairing, disconnect 되었을때 처리하는 기능을 가지고 있으며 메시지에 대한 기능을 커스터 마이징 할수 있다. 또한 전화기로부터 시계의 기계를 제어할수 있는 기능을 제공함
2) Display Task
- LCD 제어, LCD는 application task의 메시지(다시 말해 전화기의 메시지)나 시간 업데이트와 같은 내부 이벤트로부터의 메시지를 화면에 보여준다. 내부 버퍼를 가지고 있어서 빠르게 이미지를 보여줄수 있다. 내부 버퍼에 기록되고 나면 버퍼 데이터가 LCD Display로 전송된다.
3) Background task
- ambient light 측정, 베터리 충전, 버튼 상태, 진동 모터 감시/제어 등과 같은 system control/status 기능을 처리한다.
4) Buffer Pool
- 메시지 플로우를 지원하기 위한 버퍼풀이다. 각 태스크는 버퍼를 할당하고 메시지를 보내고 해제할 필요가 있다.
5) Idle Task
- MSP430의 전력 제어를 수행한다. 다른 태스크가 동작하지 않을때 Processor는 저전력 수면 모드에 있게 된다. 가장 저전력 상태는 시간을 보존하고 Bluetooth communication을 유지하는 MSP430 LPM3(Low Power Mode 3)이다.
6) Bluetooth Rx/Tx Tasks
- 두 태스크는 bluetooth communication을 처리한다. bluetooth event는 application task가 처리한다.