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