Oxford Boot Loader

oxford-bl.jpg

Oxford boot loader is a boot loader that supports loading firmware on dsPIC/PIC24 micro-controllers via UART.

The loader application has been written for POSIX implementations only.

For the UART interface any of a number of serial interfaces may be used which includes bluetooth devices such as the HC-05.

Devices

At this time 489 devices are thought to be supported and here is a list of devices which have been tested during the production of this boot loader.

dsPIC30F1010
dsPIC33EP128GP502
dsPIC33EV256GM002
dsPIC33EV256GM102
dsPIC33FJ06GS101A
dsPIC33FJ128GP802
dsPIC33FJ16GS502
dsPIC33FJ32MC102
PIC24F04KA201
PIC24F16KL402
PIC24FJ128GA202
PIC24FJ16MC101
PIC24FJ256GA702
PIC24FJ64GA002
PIC24FV08KM101
PIC24FV32KA302
PIC24HJ128GP502

Licence

Oxford Boot Loader is licensed under the GPL version 3.

Credits and Thanks

Oxford Boot Loader has been developed by Darron M Broad and is a port of Wellington boot loader developed by Darron M Broad with contributions from Gerhard Bertelsmann.

I am grateful to Chiculita Claudiu for Tiny PIC Bootloader as Oxford Boot Loader uses a protocol derived from Tiny PIC bootloader.

Checkout

Oxford boot loader is obtained using mercurial.

hg clone http://hg.kewl.org/pub/oxford
cd oxford

Configure

Configuring Oxford is a simple case of copying two template files for the target device and editing it to suit the target application.

The first file is the assembly code for the loader and the second file a GNU make file for building the loader.

cd boot
cp template.mk mk/myproject.mk
cp template.s myproject.s
vi myproject.s
vi mk/myproject.mk

Follow the guide given in the template files to create the correct boot loader firmware for your target then build the boot loader. XC16 must be installed to perform this operation.

make

Program

Now you must program the boot loader onto the target device. This will depend on the programming tool you have available and in this example we use Pickle Microchip PIC ICSP.

p24 select dsPIC33EP128GP502 lvp program myproject.hex

Once the boot loader hex file is on the target it may be reset whereupon it will listen for a connection from `easy-loader' already installed on the host platform.

Upload

In this final step you now take the application for your target device and upload it to the boot loader which will store it in flash memory.

This process is documented on the Easy-loader page.