SourceForge has been redesigned. Learn more.

e(X)treme (M)inimal (K)ernel / News: Recent posts

Critical Patch for M16C port

Attention users of XMK on the Renesas M16C platform. There is a critical bug in the M16C port in the XMK Scheduler v0.1.1 and XMK RTOS v0.1.1 releases. Please apply the patch to upgrade to v0.1.1a of the XMK Scheduler and/or XMK RTOS.

The patch fixes a critical error in the low level interrupt handling for the M16C port of the XMK Scheduler. No other platforms are affected by this bug.

Posted by john taylor 2004-10-18

Renesas M16C Port

XMK has been ported to Renesas's M16C architecture using Renesas's NC30WA compiler. The port supports both the near and far RAM memory models.

There is also an experimental port to Motorola's 68K/CPU32 architecture using the GCC compiler. However, there are no example programs or a reference target. Use with caution!

Posted by john taylor 2004-10-03

More Networking, New Release Format, and Beta

Yet another TCP/IP stack, lwIP (, has been integrated into XMK. lwIP is a more traditional stack than uIP, but still has a light-weight footprint keeping with the minimalist theme of XMK.

This release also introduces the formal partitioning of the XMK RTOS into two major packages, the XMK Scheduler and the APL Package. The XMK Scheduler is the original thread scheduler and core kernel primitives. The APL Package contains the framework interfaces such as inter-thread communications, memory management, device drivers, networking, etc. More details can be found here ... read more

Posted by john taylor 2004-03-26

New IP address for Public Perforce Server

As of March 4, 2004, the IP address of Shift-Right's Public Perforce server has changed. The new IP address is:

Posted by john taylor 2004-03-04

New Home Page and Documentation

The XMK Home Page has been upgraded and/or redone. As well as a new look, there is new documentation. The much requested Technical Overview document is finally here:

Posted by john taylor 2004-02-25

TCP/IP Support Added - with live demo!

We have successfully ported uIP (Adam's Dunkel's TCP/IP stack for 8/16bit microcontrollers:\), to XMK.

I have a live demo running a simple web server. Point your web browser to

- The 'native' uIP application interface is preserved. Any applications written for the uIP stack will run without any modifications.

- The port runs the uIP stack and the network application(s) that use the stack all in a single thread. The port also provides optional support of ITC messaging for the network thread.... read more

Posted by john taylor 2004-01-10

More Partitioning and Bug Fixes

The restructuring and/or partitioning between XMK and APL continues. The XMK low-level UART interfaces and drivers have been moved into APL. XMK can now be viewed as a thread scheduler with a few essential/core kernel primitives. The APL package will/does contain the bells and whistles, such as ITC, memory management, hardware driver support, networking, etc. For details about APL, see ... read more

Posted by john taylor 2003-12-18

Semaphore with 'timeouts' and an overhaul of APL

Enhanced the thread-semaphore and counting semaphore interfaces to support an optional timeout when waiting.

A major restructuring of the APL library was done. APL is now divided into major sections: non-threaded and threaded. Also, the abstract device interfaces there were originally part of XMK have been moved into APL.

Posted by john taylor 2003-12-06

New 'Friendly' Release Format

All future XMK releases will be done in two formats: "Full" and "Compact". The Full releases will follow the current format where everything (and I mean everything) is included - tons of examples, inclusions from OpenRepo, BENV, thirdparty code, etc.

Compact releases are a release of ONLY the kernel code, kernel drivers, and a very small set of example programs for a very small set of the supported platforms. The idea is to demonstrate XMK without overwhelming potential users.... read more

Posted by john taylor 2003-10-30

File Descriptors and Mailboxes

A 'file descriptor' abstraction layer/interface has been added to provide a common interface for IO drivers.

Inter-Thread Commnunication is now supported via XMK's companion project: APL. APL (yet Anoter Platform independent Library) provides services such as mailboxes and messages, memory pools, etc. while emphasizing a "minimalist" design criteria.

Posted by john taylor 2003-10-13

Smaller RAM footprint and Smart Scheduler

The latest release (0.0.7) has a smaller RAM footprint and improved scheduler performance. In addition, XMK has been ported to Hitachi's 16bit H8S family of microprocessors.

RAM Footprint:
XMK now uses a separate stack independent from the individual thread stacks for all interrupt processing. This provides significant RAM savings as the stack overhead for interrupt processing is only incurred once instead of N times for each thread stack.... read more

Posted by john taylor 2003-08-18

Semaphores and Serial Ports

The latest release (0.0.6) now supports Counting Semaphores and blocking IO serial port drivers.

Other new interfaces include: Thread-Specific-Data and Mutexes (well semaphores disguised as mutexes).

Posted by john taylor 2003-06-01

Alternate Scheduler Added

XMK's default scheduler binds a thread's priority with the thread's handle. This coupling is done to simplify and shrink the footprint of the kernel. However, XMK now has a optional thread scheduler the allows multiple threads to have the same priority. The new scheduler is more flexible and scales better (in terms of the number of threads), but costs more in terms of RAM and ROM.

Posted by john taylor 2003-05-14

Development snapshots now available via Perforce

XMK is now using an open source licensed Perforce server for its version management. See for help on getting started using Perforce with XMK.

Note: XMK is a sub-project of Shift-Right's Open Repository open source project.

Posted by john taylor 2003-03-16

Ported to Atmel's AVR microcontrollers

XMK has been successfully ported to Atmel's 8Bit AVR microcontroller family using the avr-gcc compiler toolchain. XMK is up and running on my Atmel STK300-ATmega103 eval board!

Posted by john taylor 2003-03-04

System Timer & Sleep Interfaces added

Two new interfaces have been added to XMK: System Timer and Thread Sleep. Each of these interfaces are independently selectable when configuring XMK for you application.

Posted by john taylor 2003-02-18

GCC/H8 Toolchain supported

XMK has been ported to use the GCC/H8 toolchain. You can now develop for the H8/300, H8/300L, H8/300L SLP, H8/300HN, and H8300H Tiny using gcc.

Posted by john taylor 2003-02-15

Alpha Release

The initial Alpha release of the basic scheduler is ready! The following CPU platforms are supported.

- CPU Platforms Supported:
..HEW2 Toolchain

- Targets with example projects
..HEW2 Toolchain

Posted by john taylor 2003-02-11