The errata list is a list of errors and their corrections that were found after the product was released. If the error was corrected in a later version or reprint the date of the correction will be displayed in the column titled "Date Corrected".
The following errata were submitted by our customers and approved as valid errors by the author or editor.
Version |
Location |
Description |
Submitted By |
Date submitted |
Date corrected |
Printed |
Page xvi-xvii
|
The "How to Contact Us" section was updated to read:
"How to Contact Us
We have tested and verified all the information in this book
to the best of our ability, but you may find that features
have changed (or even that we have made mistakes!). Please
let us know about any errors you find, as well as your
suggestions for future editions, by writing to:
O'Reilly & Associates
101 Morris Street
Sebastopol, CA 95472
800-998-9938 (in the U.S. or Canada)
707-829-0515 (international/local)
707-829-0104 (FAX)
You can also send us messages electronically. To be put on
the mailing list or request a catalog, send email to:
info@oreilly.com
To ask technical questions or comment on the book, send email to:
bookquestions@oreilly.com
We have a web site for the book, where we'll list examples,
errata, and any plans for future editions. You can access
this page at:
http://www.oreilly.com/catalog/9781565923546/
For more information about this book and others, see the
O'Reilly web site:
http://www.oreilly.com"
|
Anonymous |
|
Mar 01, 2000 |
Printed |
Page xvi
The ftp URL given was incorrect. The examples directory is |
under pub/ so the URL now reads:
ftp://ftp.oreilly.com/pub/examples/nutshell/embedded_c/
|
Anonymous |
|
Jun 01, 1999 |
Printed |
Page 28
2nd paragraph, first sentence |
"As I have implemented it, the Blinking LED example
consists of three source modules: led.c and block.c."
This is indeed a bug. The phrasing was changed to:
"As I have implemented it, the Blinking LED example
consists of three source modules: led.c, blink.c, and
startup.asm."
|
Anonymous |
|
Jan 01, 2001 |
Printed |
Page 53
2nd paragraph under "Study the External Peripherals" |
The text sayd "ASICs (Application-Specific Generated Circuits)". It now reads
"Integrated Circuit".
|
Anonymous |
|
May 01, 2001 |
Printed |
Page 69
The following text was deleted |
"If the address bus test fails, the address at which the
first error was detected will be returned. Otherwise, this
function returns NULL to indicate success"
|
Anonymous |
|
Mar 01, 2000 |
Printed |
Page 69
|
The text used to read:
datum*
memTestAddressBus(volatile datum * baseAddress,unsigned long nBytes)
{
unsigned long offset;
unsigned long testOffset;
datum pattern = 0xAA;
datum antipattern = 0x55;
It now reads:
datum *
memTestAddressBus(volatile datum * baseAddress, unsigned long nBytes)
{
unsigned long offset;
unsigned long testOffset;
datum pattern = 0xAA;
datum antipattern = 0x55;
/*
* Set the address mask that will be used as a stop condition.
*/
unsigned long addressMask = (nBytes - 1);
int busWidth = 8 * sizeof(datum);
switch (busWidth)
{
case 8: break;
case 16: addressMask >>= 1; break;
case 32: addressMask >>= 2; break;
case 64: addressMask >>= 3; break;
}
/*
* Write the default pattern at each of the power-of-two offsets.
*/
|
Anonymous |
|
Mar 01, 2000 |
Printed |
Page 69-72
All instances of |
/*
* (Text)
*/
in the code were changed to:
/*(Text)*/
|
Anonymous |
|
Mar 01, 2000 |
Printed |
Page 69
2nd paragraph |
The following was added to the end of the paragraph:
If the address bus test fails, the address at which the
first error was detected will be returned. Otherwise, this
function returns NULL to indicate success.
The code used to read:
datum *
memTestAddressBus(volatile datum * baseAddress, unsigned long nBytes)
{
unsigned long offset;
unsigned long testOffset;
datum pattern = 0xAA;
datum antipattern = 0x55;
/*
* Set the address mask that will be used as a stop condition.
*/
unsigned long addressMask = (nBytes - 1);
int busWidth = 8 * sizeof(datum);
switch (busWidth)
{
case 8: break;
case 16: addressMask >>= 1; break;
case 32: addressMask >>= 2; break;
case 64: addressMask >>= 3; break;
}
/*
* Write the default pattern at each of the power-of-two offsets.
*/
It now reads:
datum*
memTestAddressBus(volatile datum * baseAddress, unsigned long nBytes)
{
unsigned long addressMask = (nBytes - 1);
unsigned long offset;
unsigned long testOffset;
datum pattern = (datum) 0xAAAAAAAA;
datum antipattern = (datum) 0x55555555;
/*
* Write the default pattern at each of the power-of-two offsets.
*/
|
Anonymous |
|
Jun 01, 2000 |
Printed |
Page 69-72
All instances of |
/*(Text)*/
in the code were changed back to:
/*
* (Text)
*/
as they were in the original printing.
NOTE that these changes undo some of the changes that were made in
the 3/00 reprint. Those previous changes broke the code, and are now
corrected.
|
Anonymous |
|
Jun 01, 2000 |
Printed |
Page 72
3rd Paragraph |
The following sentence contains the following:
" ... DSPs from Texax Instruments ..."
It should read:
" ... DSPs from Texas Instruments ..."
|
Anonymous |
|
|
Printed |
Page 141
|
The code used to read:
int (*func) () nodeFunctions[] = {processNodeA,...};
It now reads:
int (* nodeFunctions[])() = {processNodeA,...};
|
Anonymous |
|
Mar 01, 2000 |
Printed |
Page 144
3rd paragraph |
Where the text read "(%f and %d)", it now reads "(%f and %g)".
|
Anonymous |
|
May 01, 2001 |
Printed |
Page 167
|
The URL for the CPU Info Center used to read:
(http://infopad.eecs.berkeley.edu/CIC/)
It now reads:
(http://bwrc.eecs.berkeley.edu/CIC/)
|
Anonymous |
|
Mar 01, 2000 |