==== 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.