Introduction
XMK was designed from the ground up to be very small with respect to ROM, RAM
and CPU processing resources. The original targeted platforms were 8bit
microcontrollers with only 4K to 8K of ROM and 512 bytes of RAM. XMK has since
been scaled up to 16bit and 32bit platforms. Originally it was only a preemptive
scheduler with thread synchronization primitives. Now it includes such features
as mailboxes, memory pools, file descriptors, hardware device drivers, and
TCP/IP networking. Even as XMK has expanded its functionality and scope, it has
maintained its extreme minimal philosophy and footprint. Its minimum size is
still less than 340 bytes of ROM and 18 bytes of RAM.
What is XMK?
- Small. XMK was specifically designed to run on microcontrollers using on the
only onboard ROM and RAM.
- Configurable. The application only includes the kernel services that are needed.
- Scalable. XMK will run on virtually any platform, 8bit, 16bit, and 32bit
processors.
- Portable. XMK is written in C with only a small amount of target
specific assembler for speed and efficiency.
- Free. The source can be used freely for commercial and proprietary
applications (BSD licensing agreement).
What XMK is not?
- NOT a Board Support Package (BSP). The burden of defining the vector
table, C start-up code, booting the board, initializing/configuring RAM,
etc. falls on the developer and/or the target's development system.
- NOT a Debug/Run-time environment. Targets must be loaded and debugged
with the tools supplied by their respective development system.
- NOT a C/C++ Run-time Library replacement. If the C/C++ Run time
libraries are needed, they must be provided by the target's development
system.
|