M851 WristApp Design Guide Rev 1.2
Timex Corporation 5
3 M851 Platform
This section provides an overview of the M851 Kernel Architecture.
3.1 Overview
The M851 Kernel is a real-time operating system that serves as a platform for executing applications in a
state machine framework. The kernel is composed of the core, hardware, display, audio, timer resource,
EEPROM manager, utilities, and communications.
Core
The core module controls the operation of the entire system. It makes sure
that all hardware events are processed in a timely manner and that
applications operate in a predefined manner. The core architecture defines
how applications are structured to work within the system.
The core manages the resources that are made available to applications as
well as manage the application. The core processes hardware events, and if
required, it will pass system events corresponding to the hardware event to the
application for further (and custom) processing.
Hardware Drivers
The Hardware drivers provide a layer abstraction to the actual implementation
on how to operate any hardware. The hardware macros are available for use
by the core and the applications. Some macros are to be used exclusively by
the kernel.
Display Drivers
The Display drivers are an extension of the hardware drivers dedicated only to
display services. It is a high level driver to allow the kernel and applications
to display any data in any region on the display hardware. It provides
complex display services such as blinking and scrolling.
Audio Drivers
The Audio drivers are an extension of the hardware drivers dedicated only to
the melody generation. It is a high level driver that provides services to
generate complex melodies.
Timer Resource
The Timer Resources handles all time keeping requirements for an
application. A resource contains both data and code to control the data.
The available resources are Time-of-Day resource, Time Zone Check
resource, Backup resource, Timer resource, Stopwatch resource, and the
Synchro resource.
The resources are executed in the background. It provides macros to
manipulate every aspect of its operation. The resource frees up the
application from having to supply code to do timing specific operations such
as keeping track of time, timer functions, and comparing time data.
Database Utilities
Provides utilities to access (read and write) records stored in EEPROM. It
provides a number of database access operations namely: sequential, fixed-
sized random, variable-size random and double linked list access.
Utilities
The Utilities modules provides common functions that may be used by any
applications. For example: conversions, formatting, lookup, common banner
display, pseudo-randon number generation, etc.
Communications
The Communication module consists of two modules that work together.