IAP的:
int main(void)
{
uint8_t errCode = 0;
__disable_irq();
SystemClockInit();
NVIC->ICER[0] = 0xFFFFFFFF;
nvic_vector_table_set(NVIC_VECTTAB_FLASH,0x0000);
IAPInit();
RS485UsartInit();
GprsInit(&GprsDataStruct);
LcdGPIOInit();
LedInit();
#if NORFLASH
errCode = NorFlashInit();
#endif
SysTick_Init();
/************************************************/
// /* 配置独立看门狗 */
fwdgt_config(0x0FFE,FWDGT_PSC_DIV128);//6.5504i
fwdgt_enable();
/************************************************/
__enable_irq();
/* Infinite loop */
while (1)
{
fwdgt_counter_reload(); /* 重载看门狗计数器 */
IapTimeoutProcess();
IapRunFlicker();
GprsDataProcess(&GprsDataStruct,&errCode);
RefreshProgram(*((AppInf_TypeDef*)OPTIONT_DATADDR));
Rs485DataProcess(&UsartDataStruct);
}
}
APP 的程序:
ErrStatus NorFlashInitStatus;
int main(void)
{
__disable_irq();
NVIC->ICER[0] = 0xFFFFFFFF;
nvic_vector_table_set(NVIC_VECTTAB_FLASH,0x3000);
SystemClockInit();
SimInit(0);
SetDataInit();
RS485UsartInit();
AdcInit();
Timer1Init();
Timer2Init();
Timer3Init();
KeyInit();
LcdGPIOInit();
LcdInit();
LcdReset();
LedInit();
RelayInit();
Hc4051Init();
LcdSetPixels(0xFF,0xFF);
BeepInit();
Delay(0x7FFFFF);
LcdClear();
DisplayCompany**();
Delay(0xFFFFFF);
LcdClear();
LedYellowOff();
LedRedOff();
BeepOff();
LedRedOff();
SysTick_Init();
Hc4051OperProcess(&Hc4051OperStruct);
NorFlashInitStatus = NorFlashInit();
/************************************************/
fwdgt_config(0x0FFE,FWDGT_PSC_DIV128);//6.5504ī
fwdgt_enable();
/************************************************/
__enable_irq();
DisplayStateStruct.LcdBklTicks = 60;
if(SetValueStruct.DeviceType == JFDTD_R4)
{
SetValueStruct.SensorShieldFlag |= 0x8780;//0b1000011110000000
}
/* Infinite loop */
while (1)
{
fwdgt_counter_reload(); /* טߴąٷ݆˽Ƿ */
ModBusPackProcess(&ComDataPackStruct);
SimProc(0);
LedFlagProcess(&LedFlagStruct);
DisplayStateProcess(&DisplayStateStruct);
DisplayProcess(&DisplayStateStruct);
FlashOperFlagProcess(&FlashOperFlagStruct);
Hc4051OperProcess(&Hc4051OperStruct);
AdcDataProcess(&AdcDataStruct);
KeyScanLoop(&KeyDataStruct);
KeyValueProcess(&KeyDataStruct);
BeepProcess(&BeepFlagStruct);
RelayOperateProcess(&RelayOperateStruct);
LoRaDataProcess(&LoRaComDataStruct);
UpdateFlagProcess(&UpdateFlagStruct);
}
}
显示出现应该是之前的缓存里的数据,掉电上电后蜂鸣器都不叫了(之前Jlink仿真的时候会叫)
|