Features:
|
* Updated 2003-3-18 |
Full source as bzipped tar file (43k) Full source as zip file (73k) |
The full source includes all my GPL'd code, not just the bootloader, an example program using the bootloader, and a program for uploading code to the bootloader. |
bb-hexfiles.tar.bz2 (5KB) bb-hexfiles.zip (18KB!) |
A set of precompiled bootloaders. See below for more details. |
Linux i386 uploader for the bootloader | A tested binary of a command line uploader for use with the B Bootloader. The full source above includes the source for this program. |
Windows i386 uploader for the bootloader | An untested binary of a command line uploader for use with the B Bootloader. Just the Linux version recompiled. It runs, but is otherwise untested. Requires at least a minimal install of Cygwin. In the Cygwin installer, the cygwin package under the Base category must be installed. I don't think anything else needs to be installed, but I'm not sure. |
If a configuration is not present here, it is because I didn't bother to make it, not because the configuration won't work. However, I have not tested every possible configuration. I did test the individual options, save for the 4K word parts, that can be matched together for a specific configuration, so I think these bootloaders will work. I have been wrong before, though. The 4K word part versions only differ in their EEPROM support, so any bootloader for 4K word parts that lack EEPROM support should work.
There is no distinction between 28 and 40 pin parts because the only I/O is through the USART so the code is identical.
File | Max program size | Clock speed (for 19.2kbps) | Bootloader location | Use port B pullups | USART enable /disable | EEPROM write support | Bootloader instruction count |
bb-4k-4-1-e.hex | 4K words | 4MHz |
Bank 1 0x800 - 0x947 entry: 0x86D |
no | no | yes | 328 |
bb-4k-20-1.hex | 4K words | 20MHz |
Bank 1 0x800 - 0x93B entry: 0x867 |
no | no | no | 316 |
bb-4k-20-1-e.hex | 4K words | 20MHz |
Bank 1 0x800 - 0x947 entry: 0x86D |
no | no | yes | 328 |
bb-4k-20-1-u.hex | 4K words | 20MHz |
Bank 1 0x800 - 0x94B entry: 0x86D |
no | yes | no | 332 |
bb-4k-20-1-ue.hex | 4K words | 20MHz |
Bank 1 0x800 - 0x957 entry: 0x873 |
no | yes | yes | 344 |
bb-8k-4-1.hex | 8K words | 4MHz |
Bank 1 0x800 - 0x93B entry: 0x186B |
no | no | no | 316 |
bb-8k-4-1-ue.hex | 8K words | 4MHz |
Bank 1 0x800 - 0x953 entry: 0x871 |
no | yes | yes | 340 |
bb-8k-4-3.hex | 8K words | 4MHz |
Bank 3 0x1800 - 0x193B entry: 0x186B |
no | no | no | 316 |
bb-8k-4-3-e.hex | 8K words | 4MHz |
Bank 3 0x1800 - 0x1943 entry: 0x186B |
no | no | yes | 324 |
bb-8k-4-3-ue.hex | 8K words | 4MHz |
Bank 3 0x1800 - 0x1953 entry: 0x1871 |
no | yes | yes | 340 |
bb-8k-20-1.hex | 8K words | 20MHz |
Bank 1 0x800 - 0x93B entry: 0x867 |
no | no | no | 316 |
bb-8k-20-1-e.hex | 8K words | 20MHz |
Bank 1 0x800 - 0x943 entry: 0x86B |
no | no | yes | 324 |
bb-8k-20-1-u.hex | 8K words | 20MHz |
Bank 1 0x800 - 0x94B entry: 0x86D |
no | yes | no | 332 |
bb-8k-20-1-ue.hex | 8K words | 20MHz |
Bank 1 0x800 - 0x953 entry: 0x871 |
no | yes | yes | 340 |
bb-8k-20-3.hex | 8K words | 20MHz |
Bank 3 0x1800 - 0x193B entry: 0x1867 |
no | no | no | 316 |
bb-8k-20-3-e.hex | 8K words | 20MHz |
Bank 3 0x1800 - 0x1943 entry: 0x186B |
no | no | yes | 324 |
bb-8k-20-3-u.hex | 8K words | 20MHz |
Bank 3 0x1800 - 0x194B entry: 0x186D |
no | yes | no | 332 |
bb-8k-20-3-ue.hex | 8K words | 20MHz |
Bank 3 0x1800 - 0x1953 entry: 0x1871 |
no | yes | yes | 340 |
// do not use the bootloader's address space
#ORG 0x1800, 0x193B { }
C | Assembly |
/**
|
;Calls the bootloader's main function. BSF 0A.3 ; select program bank 3 BSF 0A.4 CALL 67 ; call the bootloader BCF 0A.3 ; select program bank 0 BCF 0A.4 |