|
Compiler's name |
Tips - Remarks |
PIC 10/12/16/18 MCUs
8 bits |
CCS C Compiler |
Works out of the box - Don't modify your code |
Great Cow Basic (link) |
Works out of the box - Don't modify your code |
Microchip
C18 Compiler |
Works out of the box - Don't modify your code |
Microchip XC8 |
It
can happen you get "hex file too large" when trying to
bootload an hex file created with XC8 compiler. It's because XC8 tries
to fill the program memory by its end, and not from its beginning.
To avoid this, you must force XC8 to use a program memory address range
not overlapping with the bootloader firmware zone.
To do so, the correct address range must be put in the MPLAX X IDE:
> Project Properties >
XC8 global options > XC8 linker > Option categories:
Memory model > ROM ranges
The correct address is: "Reset vector" to "Max OnChip Program memory -
bootloader firmware length"
* "Reset vector" and "Max OnChip Program memory" can be found in the "Memory
organisation" from the device's datasheet.
* "bootloader firmware length" can be found in the "piccodes.ini" file in
the the same folder than "TinyMultiBootloader+.exe"
As an example, for a PIC18F1330 you must put in "ROM ranges": 0-1F37
(i.e: 0 = "Reset vector" / 1F3F = "Max OnChip Program memory" (0x1FFF)
- "PIC18F1330 bootloader firmware length" (200 = 0xC8)
|
JALv2 (link) |
PIC16F: (From
Sunish:) just add these two lines at the beginning of your code:
pragma
bootloader bloader
pragma
fuses no
PIC18F: (From
Dan and Sunish:) just add these two lines at the beginning of
your code:
pragma
bootloader LOADER18
pragma
fuses no
PIC18FxxKxx: (From
Dan:) just add these two lines at the beginning of your code:
pragma bootloader LOADER18 2
pragma
fuses no |
PIC18 assembler |
(From
Dan:)
1.With or without interrupt, you must use the instruction 'goto' in the
first four words.
2.You can not use the relative jump instruction in the frist four words
(rcall, bra).
3.Maximum program size = max_flash_size - bootloader_size
source Examples:
[good]
0000:call
AAA
0002:goto
INIT
[good]
0000:goto
INIT
[Not Good]
0000:rcall
AAA
0001:rcall
BBB
0002:goto
INIT
[Not Good]
0000:call
AAA
0002:bra
INIT
[Not Good]
0000:bra
INIT |
Mikro
C |
Waiting
feedback from MAIP |
SourceBoost - BoostC
(link)
|
Works
out of the box - Don't modify your code (thanks to TFCROFT4)
|
HI-TECH
C compiler |
To test... |
SDCC
(link) |
To test... |
|
|
PIC 24 MCUs / dsPIC
DSCs
16 bits |
|
|
|
|
|
|
PIC 32 MCUs
32 bits |
Microchip C32 Compiler |
Works out of the box - Don't modify your code |
mikroC PRO for PIC32 |
Works since v0.6.1 - Don't modify your code
|
|
|