Flash Magic Ethrnet Bootloader

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Flash Magic Ethrnet Bootloader

977 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by nkarakotas on Sat Jan 28 04:59:46 MST 2012
Hello,

Im trying to get the Flash magic bootloader to work on ethernet. Im able to communicate to it and erase sectors. Once I try to burn the software It gets stuck and is unable to continue. Only the blibk example provided works.

I have modified my linker .mem to a start address of 0x2000. The only way to flash software is through ethernet and I need to ship this to a client on monday so they can demostrate it, im really out of time. Does anyone have this working?

Regards,
Nick
0 Kudos
Reply
3 Replies

917 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Ex-Zero on Sat Nov 10 15:12:20 MST 2012
Yes, I did :)
0 Kudos
Reply

917 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by nkarakotas on Sat Nov 10 14:21:51 MST 2012
Hi Zero,

You do realise how old this post was? :D
0 Kudos
Reply

917 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Ex-Zero on Sat Nov 10 10:10:47 MST 2012
FlashMagic Bootloader source is including a wrong execute_user_code function without relocated vector table :eek:
void execute_user_code(void)
{
    void (*user_code_entry)(void);
    user_code_entry = (void (*)(void))(USER_START_SECTOR_ADDRESS | 0x00000001);
    user_code_entry();
}
Try a working version
 
void execute_user_code(void)
{
    void (*user_code_entry)(void);
    unsigned *p;    // used for loading address of reset handler from user flash
    /* Change the Vector Table to the USER_FLASH_START
    in case the user application uses interrupts */
    SCB->VTOR = (USER_START_SECTOR_ADDRESS & 0x1FFFFF80);
    // Load contents of second word of user flash - the reset handler address
    // in the applications vector table
    p = (unsigned *)(USER_START_SECTOR_ADDRESS +4);
    // Set user_code_entry to be the address contained in that second word
    // of user flash
    user_code_entry = (void *) *p;
    // Jump to user application
    user_code_entry();
}
0 Kudos
Reply