Tiny PIC bootloader

Tiny Bootloader

I consider firmware programs should be as small and as fast as possible. In the bootloader case all the hard work can be moved to PC software, allowing a wider range of options and easier upgrades to the software, while the firmware can implement only the basic functions.

Download tinybld173  Apr,2005
 
some older versions:
tinybld17 Nov,2004
tinybld14 June,2003

Features of the firmware

Features of the PC software

 

What do you need

How to use

All critics and suggestions are welcome at: 

General info about Bootloaders

A bootloader is a program that stays in the microcontroller and communicates with the PC (usually through the serial interface). The bootlader receives a user program from the PC and writes it in the flash memory, then launches this program in execution. Bootloaders can only be used with those microcontrollers that can write their eeprom through software. The bootloader itself must be written into the flash memory with an external burner. In order for the bootloader to be launched after each reset, a "goto bootloader" instruction must exist somewhere in the first 4 instructions; it is the job of the bootloader to reallocate the first 4 instructions of the user program to another location and execute them when the bootloader exits.

(Some of the) Available bootloaders (as reported by Google) in May, 2003:

Bootloader Name / Author Supported models Size(words) Comments
From Microchip
 
16F,18F 1000 uses Hyperterminal to upload hex files
From MicrochipC
 
16F,16F*A,18F 256/2000 +ok
WLoader
Wouter van Ooijen
16f877 1000 +does not use the UART,
+the serial interface use only one I/O pin
ZPL
Wouter van Ooijen
18F

384

+unusual method using mclr: uses zero I/O pins !
KarlLunt
 
16f87x 512 -activation on input pin
-derived from Microchip boot877.asm (uses Hyperterminal)
PICLOADER
Rick Farmer
PIC16F87x 2000 -program must start at 0x3; +password
(uses Hyperterminal)
bootload
 
PIC16F877 800 -written in C
-command line DOS program
theByteFactory
 
16F877 1000 -written in C
(uses Hyperterminal)
Jolt
Martin Dubuc
18F 256 -user code and interrupt vectors need to be relocated;
 Java GUI, +auto detect baud
?
HI-TECH Software
16F87x 256 -written in C
PIC downloader
Petr Kolomaznik
16F876 256 -is rewritten and modified from HI-TECH
+Windows interface
Ivar Johnsrud
 
18Fxx2/18Fxx8 360 -bootloader based on HiTech's
-downloader based on Petr Kolomaznik's
B Bootloader
 
PIC16F87x, PIC16F87xA 340 -called only by user application
-written in C +Linux uploader
SGupta
 
16f876 256  
I put mine here, for comparison:
Tiny 16F876A, 18F252, ... 100 +details above
 

I did it mainly because:
1. Some bootloaders I used previously had some unpleasant bugs or didn't support the devices I had.
2. I wanted to do it small. Actually it can be done even smaller :) but I like the size of 100;



This site is a member of WebRing. To browse visit here.