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.
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!
Yet another TCP/IP stack, lwIP (http://savannah.nongnu.org/projects/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 http://www.shift-right.com/xmk/xmk/overview.htm ... read more
As of March 4, 2004, the IP address of Shift-Right's Public Perforce server has changed. The new IP address is: 65.168.17.220
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: www.shift-right.com/xmk/xmk/overview.htm
We have successfully ported uIP (Adam's Dunkel's TCP/IP stack for 8/16bit microcontrollers: http://www.dunkels.com/adam/uip/\), to XMK.
I have a live demo running a simple web server. Point your web browser to http://65.168.17.220
Features/Notes:
- 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
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 http://xmk.sourceforge.net/apl/docs/index.html ... read more
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.
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
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.
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
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).
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.
XMK is now using an open source licensed Perforce server for its version management. See http://www.shift-right.com/openrepo/perforce.htm for help on getting started using Perforce with XMK.
Note: XMK is a sub-project of Shift-Right's Open Repository open source project.
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!
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.
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.
The initial Alpha release of the basic scheduler is ready! The following CPU platforms are supported.
- CPU Platforms Supported:
.Hitachi
..HEW2 Toolchain
...H8/300HN
...H8/300L
- Targets with example projects
.Hitachi
..HEW2 Toolchain
...EDK3664
...EDK38024