Hi All:
I had a problem at my user bootloader project switch to app project.
Does someone can help me? Thanks
My App project is run with TI-RTOS
App project .cmd
ENTRY POINT SYMBOL: "_c_int00" address: 00003501
MEMORY { FLASH (RX) : origin = 0x00000000, length = 0x0003d800 SRAM (RWX) : origin = 0x20000000, length = 0x00008000 } /* Section allocation in memory */ SECTIONS { .text : > FLASH .const : > FLASH .cinit : > FLASH .pinit : > FLASH .init_array : > FLASH .data : > SRAM .bss : > SRAM .sysmem : > SRAM .stack : > SRAM }
Boot loader projcet .cmd
ENTRY POINT SYMBOL: "_c_int00" address: 0003dd7d
#define APP_BASE 0x0003d800 #define RAM_BASE 0x20000000 /* System memory map */ MEMORY { /* Application stored in and executes from internal flash */ FLASH (RX) : origin = APP_BASE, length = 0x00002800 /* Application uses internal RAM for data */ SRAM (RWX) : origin = 0x20000000, length = 0x00008000 } /* Section allocation in memory */ SECTIONS { .intvecs: > APP_BASE .text : > FLASH .const : > FLASH .cinit : > FLASH .pinit : > FLASH .init_array : > FLASH .vtable : > RAM_BASE .data : > SRAM .bss : > SRAM .sysmem : > SRAM .stack : > SRAM } __STACK_TOP = __stack + 512;
How to switch those projects?
Follow is my code, but not work
void JumpToBootLoader(void) { // // Disable all processor interrupts. Instead of disabling them // one at a time, a direct write to NVIC is done to disable all // peripheral interrupts. // HWREG(NVIC_DIS0) = 0xffffffff; HWREG(NVIC_DIS1) = 0xffffffff; // // Return control to the boot loader. This is a call to the SVC // handler in the boot loader. // (*((void (*)(void))(*(uint32_t *)0x0003dd7d)))(); }
void JumpToBootLoader(void) { // // Disable all processor interrupts. Instead of disabling them // one at a time, a direct write to NVIC is done to disable all // peripheral interrupts. // HWREG(NVIC_DIS0) = 0xffffffff; HWREG(NVIC_DIS1) = 0xffffffff; // // Return control to the boot loader. This is a call to the SVC // handler in the boot loader. // (*((void (*)(void))(*(uint32_t *)0x00003501)))(); }