==== Oxford Boot Loader ====
{{:projects:oxford-bl.jpg?200}}
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 [[interfaces:bt0417c|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 [[:projects:wellington|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. [[:tools:xc16|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
[[:projects:pickle|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 [[:projects:easyloader:|Easy-loader]] page.