Tools, References, and Links
Below you can find documentation and reference sheets on tools, miscellaneous
devices, topics, etc., related to this course. More links and documents may be
added as the semester progresses.
Google
Wikipedia
x86 Assembly
QEMU and class environment
gdb
SVN
Make/gmake/Makefiles
GNU Global source code tagging
C Language
Linux Resources
- Linux Device Drivers, 3rd Edition (O'Reilly Publishing - Online version)
- Linux Identifier Search
- Understanding the Linux Virtual Memory Manager
Note:You must be enrolled in ECE391 to access this resource. Use your Active Directory
username and password.
- Code Walkthrough of the Linux Virtual Memory Manager
Note:You must be enrolled in ECE391 to access this resource. Use your Active Directory
username and password.
- Linux Scheduler Overview
This document covers both the 2.4 and 2.6 schedulers in detail. The
accompanying source for sched.c contains many comments as you step
through the code.
- Writing Linux Device Drivers in Assembly Language
- Linux Weekly News
Cofounded by Jon Corbet who is the one of the authors of the Linux
Device Drivers book. The website provides weekly information about Linux
and the free-software community.
ISA Reference Manual for x86 (Pentium IV)
Patt & Patel (Textbook from ECE190)
8259A PIC (Programmable Interrupt Controller)
Motorola MC146818 / Dallas Semiconductor DS12887 Real Time Clock
ECE390 Resources
Other
Book Recommendations
- Catsoulis, John, Designing Embedded Hardware
ISBN 0596003625
A book intended for programmers that serves as a practical guide to building
embedded devices. It provides a straightforward introduction to microcontrollers.
The book includes a chapter on the 68K MCU family from Motorola that is capable
of running the Linux operating system. The author discusses issues ranging from
soldering surface-mount components onto a PCB to designing a fully functional
single board computer.
- Love, Robert, Linux Kernel Development
ISBN 0672325128
A great supplement to the "Understanding the Linux Kernel" book. Offers insight
from a core kernel developer and includes specific details pertaining to the
2.6 kernel. The book is not as detailed as the course book but provides clear
explanations of why things are implemented in the kernel the way they are. It
includes practical chapters about portability and debugging in addition to
appendices about linked-lists, algorithm complexity and the kernel random number
generator.
- Jamsa, Kris and Klander, Lars, Jamsa's C/C++ Programmer's Bible
Copyright 1998
ISBN: 1-884133-25-8
Was $50 back in 1999
This book consists of 1500 "tips" which each tend to be
independent pieces of knowledge about C/C++. Of those 1500,
the first 802 are all on C, and then the book goes into C++
and the Windows API. Organized into sections, each tip is
usually half a page or less and there are lots of code
examples and useful diagrams. Some example tips dealing
with strings are:
- "Learning how 'A' differs from "A" "
- "Visualizing a C string"
- "Determining whether 2 strings are the same" (including implementation of strcmp).
Personally, I think this book is a useful reference
especially if trying to understand other people's code, or
trying to get a better grasp of C. It's quite heavy though,
so I recommend that it be left in the lab for people to
browse through.