#include "fbl_ap.h"
|
#include "fbl_def.h"
|
#include "xl_nvic.h"
|
#include <string.h>
|
__IO uint8_t ProgramRequest[8] __attribute__((section(".noinit_bootReqFlag")));
|
// __IO uint32_t VectorTable[99] __attribute__((section(".RAMVectorTable")));
|
|
void FblSetFblProgramRequestFlag(void)
|
{
|
ProgramRequest[0] = kProgramRequestByte0;
|
ProgramRequest[1] = kProgramRequestByte1;
|
ProgramRequest[2] = kProgramRequestByte2;
|
ProgramRequest[3] = kProgramRequestByte3;
|
ProgramRequest[4] = kProgramRequestByte4;
|
ProgramRequest[5] = kProgramRequestByte5;
|
ProgramRequest[6] = kProgramRequestByte6;
|
ProgramRequest[7] = kProgramRequestByte7;
|
}
|
uint8_t FblChkFblProgramRequestFlag(void)
|
{
|
return (((ProgramRequest[0] == kProgramRequestByte0) && (ProgramRequest[1] == kProgramRequestByte1) && (ProgramRequest[2] == kProgramRequestByte2) && (ProgramRequest[3] == kProgramRequestByte3) && (ProgramRequest[4] == kProgramRequestByte4) && (ProgramRequest[5] == kProgramRequestByte5) && (ProgramRequest[6] == kProgramRequestByte6) && (ProgramRequest[7] == kProgramRequestByte7)) ? 1u : 0u);
|
}
|
|
void FblClrFblProgramRequestFlag(void)
|
{
|
uint8_t byteIndex;
|
for (byteIndex = 0; byteIndex < 8; byteIndex++)
|
{
|
ProgramRequest[byteIndex] = 0x00u;
|
}
|
}
|
|
static void Ostick_ReInit(void)
|
{
|
SysTick->CTRL &= ~SysTick_CTRL_TICKINT_Msk; //¹Ø±ÕSYSTICKÖжÏ
|
SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk; //¹Ø±ÕSYSTICK
|
}
|
|
extern void AP_StartApp(void)
|
{
|
void (*pAppFun)(void);
|
uint32_t JumpAddr;
|
JumpAddr = (*((__IO uint32_t *)((APPLSTART_OFFSET + (uint32_t)4))));
|
pAppFun = (void (*)(void))(JumpAddr);
|
|
__set_MSP(*(__IO uint32_t *)APPLSTART_OFFSET);
|
Ostick_ReInit();
|
NVIC_SetVectorTable(NVIC_VectTab_FLASH, APPLSTART_OFFSET);
|
pAppFun(); // jump
|
}
|