Menu

LPC810(NXP/arm) Tiny Bootloader

Dan
2014-03-22
2014-04-01
  • Dan

    Dan - 2014-03-22

    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
  • Dan

    Dan - 2014-04-01

    Hi,all

    I have updated the bootloader LPC810.

    1. At the exit of the bootloader, there is a bug in place to restore the value of the switch matrix, I was corrected.

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

    3. code size reduction.

     
  • Bob Cousins

    Bob Cousins - 2017-11-10

    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

     
  • Dan

    Dan - 2017-11-15

    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

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.