LPC microcontrollers NXP's but internal organs the bootloader,
Because there is that difficult to use as described below,
I created a Tiny bootloader.
Please try a person of interest.
①TX(RX) port to be used for the boot loader is fixed.
②To enter the bootloader mode, it is necessary to ground during reset pins of interest.
Size of the prototype bootloader 256 +8 bytes(128+4 words/thumb)
At the exit of the bootloader, there is a bug in place to restore the value of the switch matrix, I was corrected.
It will be thorough and complete processing of the exit of the boot loader,
I have to return the value of the reset at the exit, the value of the register that is used by the bootloader.
Hi I like what you have done here. I wrote a version in C "just for fun", it's about 40% bigger then your assembler version.
One question, should the user app (e.g. blinky) have the bootloader entry point in its vector table for the reset vector? Otherwise, I can't see how the bootloader is entered after the user app has been programmed.
Cheers
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi,all
LPC microcontrollers NXP's but internal organs the bootloader,
Because there is that difficult to use as described below,
I created a Tiny bootloader.
Please try a person of interest.
①TX(RX) port to be used for the boot loader is fixed.
②To enter the bootloader mode, it is necessary to ground during reset pins of interest.
Size of the prototype bootloader 256 +8 bytes(128+4 words/thumb)
flash map:(0x00000000:0x00001000)
0000:0003 Stack pointer
0004:0007 Reset vector
0008:001B IRQ vector
001C:001F CheckSum 0000:001B
0020:00BF IRQ vector
00C0:0EF7 User Program
0EF8:0EFF User Program jump vector
0F00:0FFF Bootloader
Ram map:(0x10000000:0x10000400)
0000:003F bootloader buffer 64bytes
0040:005F IAP table
0060:03FF RAM/STACK/IAP
piccodes.ini
; NXP LPC family
;
;-----------
$31, 3, LPC 810, $1000, 0, 264, 64,
Last edit: Dan 2014-03-22
Hi,all
I have updated the bootloader LPC810.
At the exit of the bootloader, there is a bug in place to restore the value of the switch matrix, I was corrected.
It will be thorough and complete processing of the exit of the boot loader,
I have to return the value of the reset at the exit, the value of the register that is used by the bootloader.
code size reduction.
Hi I like what you have done here. I wrote a version in C "just for fun", it's about 40% bigger then your assembler version.
One question, should the user app (e.g. blinky) have the bootloader entry point in its vector table for the reset vector? Otherwise, I can't see how the bootloader is entered after the user app has been programmed.
Cheers
Hi Bob
Since the bootloader automatically rewrites the reset vector,
Please make C application normally.
Please set the size to 0x00000EF7 or less.
Attach a sample that can be read by the bootloader.
(1) LED flashing program
... \ LPCXpresso_6.X.X_XXX \ workspace \ Blinky \ Release \ Blinky.hex
(2) Key input Echo program
... \ LPCXpresso_6.X.X_XXX \ workspace \ STEST \ Release \ echo.hex
(3) LPC 810 Flash memory dump
... \ LPCXpresso_6.X.X_XXX \ workspace \ STEST \ Release \ flash_dump.hex
(4) LPC 810 RAM memory dump
... \ LPCXpresso_6.X.X_X_XXX \ workspace \ STEST \ Release \ ram_dump.hex
(5) LPC 810 BOOT ROM dump
... \ LPCXpresso_6.X.X_X_XXX \ workspace \ STEST \ Release \ rom_dump.hex