I have a copy of Tannenbaum's  book. It's ironic that you should mention
him on a LUG list, considering his history with Linux.  The debate
between Linus Torvalds and Andy Tannenbaum is something of a legend in
operating system design circles.

Tannenbaum advocates the "microkernel" operating system design.  Linux
is technically speaking a monolithic operating system, with module
device drivers.  Hence the debate between them.


Anyway, being here nor there... 

Clayton,

Is the device in question a stand alone device, or something you plan to
interface with a PC since you mentioned USB? What OS?
If so, you may need to create a driver for the OS in question.
  

Personally, depending on your experience level with hardware, I'd first
suggest a courses in digital logic, and one in processor architecture.
Then take your assembly language courses.  Some combine the architecture
and assembly into one course.

Assembly language should not be taken lightly.  It's notoriously
difficult for new programmers to learn, and it is not portable from one
processor family to another.  There are no safety nets with assembly,
for such things as array boundaries,  so be sure to debug your programs
carefully.


Most often, programmers will use stripped object code from C, rather
than drive into assembly code.  Assembly should be your last resort
really, when there is nothing else available to get the job done.  It
used to be a memory size concern, but flashcards and ram are so cheap
now that it's not as much an issue anymore.

Considering that there is even an embedded version of (memory hog),
Windows, called Windows CE, I don't think anyone is as nervous about
memory requirements as they were in past years.

Let me know if I can help.

Thanks,
T.J.





-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.mn-linux.org/pipermail/tclug-list/attachments/20060429/42ad41bd/attachment.htm