Angel and Angelboot are an easy boot-loader team to use, that illustrates the basics nicely. Here is an example of its use, in a host machine that has a terminal such as minicom or an emulator such as seyon, in uploading a kernel and RAMdisk to an Intel Assabet board and then running them.
Angel is the code that lives on the device that gets started on boot and Angelboot is the program that runs on the host and manages the upload. Angel is in fact part of the ARM SDT and can be used as a debugger in that environment. Angelboot allows it to be used outside this environment.