The Wayback Machine - https://web.archive.org/web/20060219071613/http://www.sticlete.com:80/whatos/
Image
DOWNLOAD

CHANGES

SCREENSHOTS

DOCUMENTATION

PROJECTS



WhatOS

News

2005 May 28

WhatOS 2.0.2 contains several new features and bug fixes plus a much more complete documentation. It has been improved and tested to work with Freescale (Motorola) HC08 and CodeWarrior. (See Platforms and Changes). Also added a new Projects section, and an embedded session demo.

2004 Nov 24

WhatOS 2.0 is completely rewritten. It has been written using the prototype-based programming style. It is substantially simpler, making it much easier to learn and to use. It also offers many new features and fixes.

WhatOS is a small Python open-source framework for creating applications consisting of communicating state machines. So far, its most useful application domain has been deeply embedded system design. This is a personal project which I have used for learning new things, consulting work, hardware needed for systems controls research at the University of Waterloo (where I am currently doing my Masters), and other hobby hardware projects.

In a nutshell, WhatOS allows a Python programmer to write state machines, called tasks, plug them together in a system, and simulate that system. The behaviour of each task can be specified using either C or Python. WhatOS can generate a standalone real-time operating system (RTOS) containing the C tasks in the system and all communication support between those tasks. This RTOS is generated in the form of a C file which may be compiled using different C compilers and used to program different processors.

overview.png

The primary goals include:

Agile, Rapid, Test-driven development
Being written in Python, system reconfiguration is highly flexible. A system is tested completely on a PC before programming on a target microprocessor. Components available only on the target, such as hardware devices, are simulated. Simulation sessions may be captured for automated testing.
Reusability and target independence
Tasks are self-contained components which are reusable in many different systems running on many different processors.
Speed and memory efficiency
Generated systems are intended to work on targets as small as 8-bit microcontrollers (a small application easily fits on an ATMEL ATMEGA8 microcontroller). Only features needed by the application are included.
Automated documentation
Visual diagrams show the connectivity between tasks.

Platforms

WhatOS is designed to be completely platform independent. However, this cannot be guaranteed until tested on each and every platform. The following platforms have been tested:

If you get it to work with another processor/compiler combination please contact me to share this information for the benefit of others.

© Mircea Hossu (Image) WhatOS 2.0.2  (2005 May 28)