53 lines
2.6 KiB
Plaintext
53 lines
2.6 KiB
Plaintext
|
|
See the top level README for information on where to find the
|
|
schematic and programmers reference manual for the ARM processor
|
|
on the raspberry pi.
|
|
|
|
Derived from uart02 and code of various ages (yes some from 1996), this
|
|
is a very simple bootloader. Instead of removing, writing, and replcing
|
|
the sd card numerous times. This makes that a bit simpler. Using the
|
|
uart on the card and some sort of uart on the host (see below) you only
|
|
need to load the bootloader (kernel.img derived from bootloader01.elf)
|
|
one time. From then on just power cycle the raspberry pi and use the
|
|
host loader program (prograspi) to load and start the program under
|
|
development on the raspberry pi.
|
|
|
|
This bootloader sits at 0x200000 so that you have 0x200000 bytes to
|
|
develop with. And that way if you like your program you can just
|
|
copy a .bin version to kernel.img on the sd card and use it. I had
|
|
the bootloader closer to 0x0000000 and test programs would be after it
|
|
but that means to make a real program for the sd card would be another
|
|
link step. Very easy to change this, both bootloader01.c and prograspi.c
|
|
use the same number 0x200000.
|
|
|
|
On the host you will want to use something like this:
|
|
http://www.sparkfun.com/products/718
|
|
to connect to the uart pins on the raspi. Do not connect the raspberry
|
|
pi pins directly to a com port on a computer you will fry the board.
|
|
The above board happens to have pins in the same order as the raspberry
|
|
pi. On connector P1 on the raspberry pi connect pin 6 to ground on the
|
|
usb to serial board. Pin 8 on P1 to RX on the usb to serial board, and
|
|
pin 10 on P1 to TX on the usb to serial board. I use these
|
|
http://www.sparkfun.com/products/8430
|
|
to connect the ftdi board to the raspberry pi. No soldering required,
|
|
at least not at the moment. If down the road the raspberri pi does
|
|
not have P1 header pins then there will be some soldering or something
|
|
required.
|
|
|
|
You do not use a dumb terminal program. The program on the host
|
|
that loads your ARM program is called prograspi. There is a test
|
|
program derived from blinker03 called blinker. Once you have copied
|
|
kernel.img to the sd card on the raspberry pi. You have hooked up
|
|
the usb to serial board to the raspberry pi. Plug the usb into
|
|
the usb to serial board and use dmesg to note the /dev/ttyUSBX port.
|
|
Plug in the raspberry pi to power it and then run:
|
|
|
|
./prograspi blinker.hex /dev/ttyUSBX
|
|
|
|
where /dev/ttyUSBX is the port you are connecting through, it could
|
|
be a real serial port if you have a tranciever for the raspberry pi
|
|
side. (MAX232 for example).
|
|
|
|
Now you can go back and try my other examples without the dozens/hundreds
|
|
of sd card insertions it took me to get to this point.
|