tao_z
2022-05-31 41f087b7183a5730e46b7eaa322b6852d602babf
Application/source/fbl_ap.c
@@ -2,8 +2,8 @@
#include "fbl_def.h"
#include "xl_nvic.h"
#include <string.h>
__IO uint8_t ProgramRequest[8] __attribute__((section(".noinit_bootReqFlag_ram")));
__IO uint32_t VectorTable[99] __attribute__((section(".RAMVectorTable")));
__IO uint8_t ProgramRequest[8] __attribute__((section(".noinit_bootReqFlag")));
// __IO uint32_t VectorTable[99] __attribute__((section(".RAMVectorTable")));
void FblSetFblProgramRequestFlag(void)
{
@@ -40,17 +40,11 @@
{
    void (*pAppFun)(void);
    uint32_t JumpAddr;
    JumpAddr = (void (*)(void))(*((uint32_t *)((APPLSTART_OFFSET + (uint32_t)4))));
    pAppFun = (void (*)(void))JumpAddr;
    JumpAddr = (*((__IO uint32_t *)((APPLSTART_OFFSET + (uint32_t)4))));
    pAppFun = (void (*)(void))(JumpAddr);
    __set_MSP(*(__IO uint32_t *)APPLSTART_OFFSET);
    /* Copy application vector table to RAM */
    (void)memcpy((void *)VectorTable, (void *)APPLSTART_OFFSET, sizeof(VectorTable));
    __asm volatile("cpsid i"); // disable all interrupt
    Ostick_ReInit();
    /* Relocate vector table in SRAM at the adress 0x20000000 */
    NVIC_SetVectorTable(NVIC_VectTab_RAM, 0); // set vector table at start of ram     ((uint32_t)0x20000000)
    (*pAppFun)(); // jump
    NVIC_SetVectorTable(NVIC_VectTab_FLASH, APPLSTART_OFFSET);
    pAppFun(); // jump
}