                         uC/OS-II, The Real-Time Kernel
                              Companion Diskette

                             uC/OS-II Version 2.00

                                 READ ME FILE


----------------------------- REPORTING PROBLEMS -----------------------------

    If  you find a problem (i.e. bug) in uC/OS-II, do not hesitate to report the
problem to either:

 1) The publisher:

        Miller Freeman, Inc. (R&D Books)
        1601 West 23rd Street, Suite 200
        Lawrence, Kansas 66046
        (785) 841-1631
        (785) 841-2047 (FAX)

        INTERNET: rd@rushorder.com
        WEB     : http://www.rdbooks.com

 2) Through the WEB:
 
        www.uCOS-II.com
        
 3) Through the INTERNET:

        My INTERNET address is:   Jean.Labrosse@uCOS-II.com

 4) By writing to me:

        Jean J. Labrosse
        9540 N.W. 9th Court
        Plantation, FL 33324
        U.S.A.

 5) By calling me (after 8PM Eastern time, US):

        (954) 472-5094
        (954) 472-7779, FAX

    Make sure that the problem you are  reporting is in  uC/OS-II and not your
application.    If you in fact discover a bug in uC/OS-II, call the  publisher 
and see if they are shipping the same version of the code that you are using.

    If you are  using  an  older  version,  you should  first  get the lastest
version from the publisher.  Most likely,  the  bug  has been found by someone
else  and  has  been  corrected.   In this case, you can obtain an  upgrade by
contacting the publisher (see SOFTWARE UPGRADES).

    If you have the same version as the publisher then you may have  uncovered
a problem.   I will do my best to correct the problem and  get an  answer back
to you as quickly as possible.  If you found a problem with uC/OS-II, you will
get a FREE upgrade.

/*$PAGE*/
------------------------------ SOFTWARE UPGRADES -----------------------------

    As you can see, I have been trying to support uC/OS (i.e. V1.xx) and  now,
uC/OS-II.  When bugs are found, I do my best to promptly correct them.   It is 
virtually  impossible  to notify  everybody that  purchased the code (i.e. the 
diskette)  to  tell  them  that  a  new  version  is  available.    You should 
occasionally check the uC/OS-II WEB site (www.ucos-ii.com) to see what version
is currently shipping.    The cost to  upgrade will be less than the price you
paid for the original diskette.    

    I will not be  upgrading the  publisher  everytime  I add new  features to
uC/OS-II.  However, I will upgrade the publisher whenever a bug is  discovered
and fixed.

    If you find a bug in the most recent release, you will get a FREE upgrade.

    I  would  highly  suggest that you resist changing the  STYLE  of the code
unless you don't mind spending many hours doing so everytime you upgrade.
/*$PAGE*/
--------------------- FEQUENTLY ASKED QUESTIONS / PROBLEMS -------------------

 1) My computer/processor 'hangs' when I run uC/OS-II!

    An executable for uC/OS-II is provided on the diskette.  If uC/OS-II still 
    hangs with the  executable  provided on the floppy, try to contact me.  If
    uC/OS-II does not hang with the executable provided on the floppy then you 
    need to look at 'OSIntCtxSw'  which is processor specific.  The very first
    instruction in  'OSIntCtxSw'  may need some adjustment, i.e. ADD SP,8.  If
    you use  another  processor,  compiler  or  memory model,  you may need to
    adjust the constant.


 2) Where should I enable the 'tick' interrupt ?

    You should enable the tick interrupt AFTER you have started  uC/OS-II in a
    'startup' task as shown in the  example  code.   This way, the OS is in  a
    state ready to accept interrupts and can thus process interrupts.


 3) The executable on the floppy  works  fine  but when I compile with Borland
    C++ V3.0, the program crashes ?

    uC/OS-II was actually compiled with V3.1 and not V3.0. You may want to get
    that  version  of  the  compiler  (or higher).   I  actually have uC/OS-II  
    running with V4.51.  In any event, try looking at item 1).


 4) Does uC/OS-II work with Microsoft C/C++ ?

    Yes, you will have to adjust the  SP  offset  constant  (see item 1))  and
    disable stack checking.   Others have used the  Microsoft compiler without
    too many problems.


 5) Are there other ports available for uC/OS-II ?

    There are  currently a large number of ports available for uC/OS.   If you 
    have such a port, you can easily port it to uC/OS-II. uC/OS-II is actually 
    easier  to  port  than  uC/OS.   I am planning on making a number of ports 
    available on the WEB site as they become available.
    
/*$PAGE*/
----------------------------- uC/OS-II RELEASE NOTES -------------------------

July 11, 1998: V2.00
--------------------

 1) First release of uC/OS-II.


/*$PAGE*/
------------------------ EMBEDDED SYSTEMS BUILDING BLOCKS --------------------
                      Complete and Ready-to-Use Modules in C

    My other book is availabe from R&D Books (785-841-1631).  This
book is  basically a collection of portable modules specifically designed  for 
embedded systems.

    The book assumes that you are using  uC/OS-II but most (if not all) of the
code can be ported to just about any other real-time kernel. The book contains
the following modules:

    1) Keyboard scanning routine
           Scans keyboard matrices from 3x3 to 8x8
               (but can be easily expanded to support larger keyboards)
    2) Multiplexed LED driver
           Controls LED matrices from 2x2 to 8x8
               (but can be easily expanded to support larger arrays)
    3) Character LCD module driver
           Any character LCD module based on the Hitachi HD44780 chip.
    4) Clock/calendar module
           Hours, Minutes, Seconds
           Month, Day, Year
           Time stamps
    5) Timer manager module
           You can have up to 250 countdown timers.
           Each timer has a resolution of 1/10 sec.
           Each timer can timeout after 99 minutes and 59.9 seconds
           When a timer times out, a function can be executed.
    6) Discrete I/O manager
           Manages up to 250 discrete inputs and 250 discrete outputs
           Discrete input channels can:
               - Detect lows,
               - Detect highs,
               - Detect transitions and execute a function
               - Count transitions
                     (low to high or high to low or both)
               - Toggle ON, toggle OFF
           Discrete output channels can:
               - Turn an output ON or OFF
               - Blink an output
    7) Analog I/O manager
           Manages up to 250 analog inputs and 250 analog outputs
           Converts ADC counts to Engineering Units
           Convert Engineering Units to DAC counts
           Each channel can call a linearization function that you
               define.
    8) Asynchronous serial I/O driver
           Provides an interrupt driven driver for COM1 and COM2 on the PC.
           Provides input and output buffering.
           The code can be easily ported to other serial devices.
/*$PAGE*/
    The book also contains a chapter discussing fixed-point math.

    The emphasis of this book is  that you  should be  able to  use  the  code
'as is' in your embedded application.   To that effect, a diskette IS included
with the book and contains all the  source code  (mostly in C).   The book and
the diskette cost only $49.95.

    I also give you the execution time of just about every function  (assuming
an Intel 80386 running at 16 MHz) so that you can  forecast the  CPU  usage of
your application.  This is  especially useful if you are designing for the new
Intel 386EX processor.   I also list the  amount of  ROM and RAM  required for
each module.    For  just  about every  function, I also provide the amount of
stack required to allow you to  determine how much stack space each task needs
to allocate.

    This is the only book of its kind. If you write code for embedded systems,
this book is for you.

    If you liked 
        "uC/OS, The Real-Time Kernel" and now, 
        "uC/OS-II, The Real-Time Kernel", 
    you will love "Embedded Systems Building Blocks"!



Thanks for your support,


Jean J. Labrosse
