OpenEZ
A GPL Operating System and Stack
for the eZ80 family of microprocessors.
Release History
Where credit is due for a code change, that person’s name is
given in parenthesis following the description of the change.
o
SHA speed improved by converting some code to assembler
o
HMAC_SHA routines added
o
AES functions added.
Assembler subroutines were created to make these transforms run very
fast on the eZ80
o
Driver and task code
written to support I2C logic
o
Improvements to task
cleanup for exit(), abort(), and kill().
Removal of timeQueue entries and unregistering resources
o
Numerous minor fixes, and
improvements
o
Blowfish support added
o
LWIP stack upgraded to
Stable 1.1.0
o
Boot loader
improvements: application interface documentation, software package &
checksum
o
Added MPI library of
routines (based on libgcrypt):
arbitrary length integers
o
Several routines added
to support 24 bit integers / pointer arithmetic
o
Improved input handling
added, supported some line editing
o
Method of dispatching
LWIP task changed to improve performance of IP
o
Added SHA-0 and SHA-1
hash routines
o
Fixed a bug in wait.c
relating to removing the last wait block in a chain
o
Improved telnet
negotiation, moved code to a separate function (removed from stream.c to
telnet_get.c)
o
Add shell command to telnet
out to a remote host
o
Changed flash support
code so that a program running in FLASH can still burn FLASH
v
Release 1.00 on 7/1/2003 download OpenEZ_1.00.zip
o
Various small changes
to take advantange of IAR’s new version 1.33A of the eZ80 Workbench development
environment.
o
The bootloader is now a
separate independent program, allowing xmodem application updates as long as
the bootloader itself is undamaged.
o
A Timer now used to
time the execution time in microseconds of each task and compute it’s CPU usage
o
New feature added for
event driven tasks, tasks can now wait on specific events, or combinations of
events before being dispatched. So dispatching can now be cooperative,
pre-emptive, or event driven or any combination thereof.
v
Release 0.90
o
System mode changed,
when __mode is non-zero time-slice timer simply restarts if necessary
v
Release 0.89 on 03/14/03 download OpenEZ_0.89.zip
housekeeping release
o
Various syntax changes
to make the ZDS conversion easier and to better conform to strict ANSI. (Karl Kobel)
o
Flash.c moved from
startup group to utility group
o
ez80.h removed, all
hardware addresses are now in ez80L92.h
which works with both C & ASM
o
Renamed: log.c -> httpd_log.h &
log.c -> httpd_log.c
v
Release 0.88 on 3/08/03 download OpenEZ
0.88.zip note: this release is
experimental, the changes have not been completely tested. I put the release up in the hopes that
someone will help me with the testing.
o
Dispatcher now saves
and restores a short stack pointer in addition to the long stack pointer,
apparently a few of IAR’s library routines use the short stack pointer
(ugh!). stack.c now sets up both a long
stack and a short stack for each task.
o
Low_level_init now
defines an initial low stack pointer value and cstartup.s46 uses it to set the
SPS and MBASE registers
o
Renamed and changed the
linkage of a couple of utility routines:
SameAs(), SameTo(), SameAsI()
o
Cleaned up several
problems in the start up code related to executing the code in flash memory
(Sean Smith)
o
Fixed a problem in
timeQueue.c. If one or more tasks issued am msleep() or call to
timerQueue_add() before the timerQueue task had a chance to run, those tasks
issuing the msleep() or other call would be suspended indefinitely. (Sean Smith)
v
Release 0.87 on 2/04/2003 download OpenEZ 0.87.zip
o
Change low_level_init.c
so that GPIO PD4 cannot interrupt the CPU (Sean Smith)
o
Remove extra copy of
filehdir.h from httpd directory (Sean Smith)
v
Release 0.86 on 1/26/2003 download OpenEZ 0.86.zip
o
Additional
documentation notes added
o
Shell now supports the
back-space character
o
Extra copy of httpd.h
removed from .zip file
o
Shell display-date
function now displays the day-of-the-week as a string
o
Real Time Clock now
sets the day of the week automatically
v
Release 0.85 on 1/09/2003 download OpenEZ_0.85.zip
o
System Mode altered to
allow nesting
o
Make CFIFO process safe
o
Renamed gcs.h to
OpenEZ.h
o
Fixed a bug in httpd
that crashed the machine when trying to display a web page with an offset
greater than 64K.
v
Release 0.80 on 1/8/2003
download OpenEZ_0.80.zip
o
Changed / improved the
dynamic content feature. This feature
has you code a special tag in the HTML document then, at run time, that tag is
replaced by the output of a function you provide. This is useful in cases where the majority of a page is static,
but there is a bit of calculated data sprinkled about.
o
Added a date/time
function as a second example of dynamic functionality.
o
Improved the speed of
HTML transfers of text files.
v
Release 0.70 on 1/6/2003
o
The perl scripts for
converting web pages to assembler, and for converting the M28 file from IAR to
assembler source for ZDSII are now available on the IAR Tools menu.
o
Memory dump cgi
function provided as a sample of how to write cgi functions.
o
Utilities provided to retrieve
values from a URL query string or the request body if a POST request, making it
easy to write a CGI function that will work either way.
o
Greatly improved
parsing of HTTP request header
o
Added timeout feature
to HTTPd connections
o
Enchanced peek function
to look ahead to the nth next char.
o
Code no longer labeled
“Beta”, it now seems mature enough to drop that term.
o
An option has been
added to the timer queue functions to support auto-rescheduling, this makes
recurring callbacks easier to setup.
v
Beta release 0.60 on 1/3/2003
o
Several miscellaneous
bugs fixed that were caused by the time slicing feature.
o
“SYSTEM MODE” added to
let system functions operate more efficiently: priority of tasks is set to
maximim and time-slicing is suspended when a task calls certain system
routines, these features are then resumed/restored when the system routines
return to their callers.
o
msleep() added, to put
a task to sleep for a given number of milliseconds
o
TimerQueue functions
added to schedule an unlimited number of call backs with millisecond resolution
o
Added “test-and-set”
function, for fast and simple mutual exclusion
o
Added recursive mutex
support, similar to those in Linux threads, for more robust mutual exclusion
v
Beta release 0.51 on 12/31/2002
o
Fixed a bug relating to
calling exit() from a time sliced task.
v
Beta release 0.50 on 12/31/2002
o
OpenEZ now supports
pre-emptive scheduling, in addition to cooperative scheduling. Each running
task can be assigned a time slice, and control will be taken away from it once
the time slice expires unless the task gives up control on its own before then.
Time slice values are specified in microseconds, and can range from 100us to
80ms.
o
Shell upgraded to
display the time slice value of each task.
o
Routine added to let a
task change its time slice value, or disable its time slice limit for critical
sections of code, without turning off interrupts.
o
Added edit function for
formatting numeric fields
v
Beta release 0.45 on 12/30/2002
o
Routines to write/erase
FLASH added.
o
New shell command for
erasing a flash bank.
o
Shell command “load”,
upgraded to support loading to RAM or FLASH
v
Beta release 0.40 on 12/29/2002
o
HTTPd server added,
supports static and dynamic content
o
perl script added for converting
html, gif, jpg files to assembler code for inclusion in the project.
v
Beta release 0.30 on 12/27/2002
o
DHCP client ported and
tested, OS can now use static or dynamic IP configuration
o
Shell command to test
security transforms added
o
Security transforms
added: md5 (hash), href-md5 (authentication), blowfish (encryption)
o
Add sign on greeting
o
Add help feature, clean
up shell
o
Remove unneeded patches
that were added while trying to make Zilog complier work
v
Beta release 0.20 on 12/26/2002
o
stderr stream added for
each task
o
eprintf() and edmp()
added to direct debug output to stderr
o
DML changed to shell,
commands renamed
o
login function added,
username/password
o
partial telnet
negotiation added
v
Beta release 0.10 on 12/23/2002
o
initial release
Copyright2002, Robert Laughlin
Last Update 3/7/2005 12:50:33 PM