OpenEZ
A GPL Operating System and Stack
for the eZ80 family of microprocessors.
Description
OpenEZ is an open source, multi-tasking operating system
with a built in TCP/IP stack. The
TCP/IP stack is a version of LwIP
specifically ported for the eZ80 with the CS8900A Ethernet chip. LwIP is released under a BSD-style license and my port of that code
released under those same terms. The
rest of my OS code is released under the GPL license. This means all the software here is free for
you to use, including for commercial purposes, provided you make available any
derived works that you create on that same basis. If you need a different license for the OS, get in touch with me
and perhaps something can be worked out.
Features
- Multi-tasking
operating system, designed for the eZ80 and optimized for embedded
systems.
- Mutex
functionality, similar to Linux threads recursive mutexes.
- TimerQueue
feature adds unlimited callback scheduling, with millisecond
precision. Makes it easy to
schedule something to happen after a delay while the task goes ahead with
other work. Callbacks can be scheduled to occur once, or to repeat at the
selected interval indefinitely.
- msleep()
function to put a task to sleep for a given number of milliseconds
- Extremely
fast dispatcher / scheduler supports by-task priority and time slicing.
- Tasks
can be set to run within a time slice, until voluntarily giving up
control, event driven or a combination of these.
- Tasks
can be dynamically created and ended, or started at system initialization
and run unendingly
- Each
task has it’s own stdin, stdout and stderr streams, which can be directed
to a UART or a TCP/IP port. Multiple
tasks can share the same output stream. Tasks can operate with no stdio
streams, as well.
- Included
are interrupt drivers for UARTs, Timer0 (1000 interrupts/sec), Timer1
(time slice timing) and RTC (1 interrupt/sec)
- Built
in HTTP, Telnet, Echo, and ping servers,
- Utilities
provided for decoding HTML requests, whether GET or POST method.
- Supports
login by username/password.
Partial telnet negotiation, passwords not echoed, for example.
- Optional
DHCP client for dynamic IP configuring
- Built
in Shell: dump, load memory, set
time, date, view I/O registers, presently 18 commands and growing.
- Proven
IP stack ported from the open source LwIP project
- Driver
for the CS8900A Ethernet chip, runs in the polled mode as recommended by
Crystal.
- Routines
provided for writing and erasing flash memory.
- Comes
configured for the L92 version of the Zilog development platform, but
easily adjusted for other memory-I/O configurations
- Less
than 100KB of code, for everything.
Unused software routines automatically omitted for an even smaller
footprint.
- Extensive
security functions included: AES,
Blowfish, SHA-1, MD5, HMAC-MD5, HMAC-SHA-1
- All
source code is available
More Information
To Do List / Wish List / Future Plans
- Add
kill <pid> command to shell
- Add
PPP support for transmissions over the serial ports
- Let me
know if you see something you need that is missing. I would also be happy
to have a few experienced programmers join in the development
process. OpenEZ will be better if
several people contribute to it and are testing the code to ensure it’s
the best it can be.
Links / Resources
This project is supported by
Robert Laughlin
Digital Systems Corp
Walkersville,
Maryland, USA
Copyright
2002
Last Update 3/7/2005 12:48:10 PM