This class utilizes mostly, if not all, free software. There is a wealth
of high quality free software tools out there, but most people do not know
such tools because there is little advertisement about such tools.
The primary compiler we will use is gcc (GNU C Compiler).
gcc is a mature C compiler that is multihomed and multitargetted.
This means the compiler itself can run on many platforms (such as
Linux and Windows). At the same time, the code compiled by gcc
can also run on many platforms. In fact, the platform on which the compiler
itself runs does not need to be the same platform that the compiled
code is targetted for! A compiler that has a target platform different
from its home platform is called a cross compiler.
Besides the compiler, there are other necessary tools we need to get:
- binutils: this is a collection of programs that
supports a compiler. Such programs include a linker and an
assembler.
- libc: the job of a compiler is to translate. This means
a programmer still needs to specify how to do everything.
libc is a library of useful subroutines that are
``commonly used'' in programs. In other words, libc is
a collection of subroutines that most people find useful in
programming. libc also include the necessary header
files to use such pre-defined subroutines.
- gdb: this is the debugger. It is not too helpful unless
we use ICE (in-circuit emulator) devices for debugging.
- uisp: this is a device programmer software tool that
allows a PC write a program to a target computer.
Copyright © 2006-02-15 by Tak Auyeung