stm32/f1/vector: add ability to boot to DFU bootloader
note: Only works on CL devices also: this could probably use a helper function
This commit is contained in:
parent
be4ee41ef9
commit
153e81bc96
@ -191,10 +191,19 @@ void (*const vector_table[]) (void) = {
|
|||||||
otg_fs_isr, /* Addr: 0x0000_014C */
|
otg_fs_isr, /* Addr: 0x0000_014C */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
void reset_handler(void)
|
void reset_handler(void)
|
||||||
{
|
{
|
||||||
volatile unsigned *src, *dest;
|
volatile unsigned *src, *dest;
|
||||||
|
uint32_t reset_str = *((uint32_t *)0x2000FFF0);
|
||||||
|
|
||||||
|
if (reset_str == 0xDEADBEEF) {
|
||||||
|
*((uint32_t *)0x2000FFF0) = 0x00;
|
||||||
|
asm("ldr r0, =0x1fffb000");
|
||||||
|
asm("ldr sp, [r0, #0]");
|
||||||
|
asm("ldr r0, [r0, #4]");
|
||||||
|
asm("bx r0");
|
||||||
|
}
|
||||||
__asm__("MSR msp, %0" : : "r"(&_stack));
|
__asm__("MSR msp, %0" : : "r"(&_stack));
|
||||||
|
|
||||||
for (src = &_data_loadaddr, dest = &_data; dest < &_edata; src++, dest++)
|
for (src = &_data_loadaddr, dest = &_data; dest < &_edata; src++, dest++)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user