#include "bl_task.h" #include "../uds/uds_bsw_flash.h" #include "../uds/uds_fbl_mgr.h" #include "../uds/uds_fbl_service31.h" #include "../uds/uds_fbl_service11.h" #include "../cdd/CddSbc/CddSbc_TLE9471.h" static uint16_t systemTickPrescaler = 0; uint8_t system_20msdelayCNT = 0; static uint16_t systemTickSbc = 0; static bool b_task_1ms_flag = false; static bool b_task_2ms_flag = false; static bool b_task_5ms_flag = false; static bool b_task_10ms_flag = false; static bool b_task_100ms_flag = false; static bool b_task_500ms_flag = false; static uint16_t srand_seed = 0; void SystemPollingServiceTop1For1ms(void) { systemTickPrescaler++; srand_seed++; systemTickSbc++; /*======1 ms task================*/ b_task_1ms_flag = true; if(system_20msdelayCNT <= 20) { system_20msdelayCNT++; } else { system_20msdelayCNT = 100; } /*======2 ms task================*/ if ((systemTickPrescaler % 2) == 0) { b_task_2ms_flag = true; } /*======5 ms task================*/ if ((systemTickPrescaler % 5) == 0) { b_task_5ms_flag = true; } /*======10 ms task================*/ if (((systemTickPrescaler + 1) % 10) == 0) { b_task_10ms_flag = true; } /*======100 ms task================*/ if (((systemTickPrescaler + 2) % 100) == 0) { b_task_100ms_flag = true; } if(systemTickPrescaler >= 102) { systemTickPrescaler = 0; } if(srand_seed >= (uint16_t)0xFEFF) { srand_seed = srand_seed >> 4; } /*======500 ms task================*/ if ((systemTickSbc % 500) == 0) { b_task_500ms_flag = true; } if(systemTickSbc >= 500) { systemTickSbc = 0; } } uint16_t App_Get_SrandSeed() { return srand_seed; } void App_Add_SrandSeed(uint8_t addition) { if(srand_seed >= (uint16_t)0xFE00) { srand_seed = srand_seed >> 4; } else { srand_seed = srand_seed + addition; } } void Task_mananager(void) { /*======free run task================*/ if(false != b_task_1ms_flag) { network_main(); FlsPgm_EraseStateMachinePolling(); /* code flash erase process */ FlashPageProgStatePolling(); /* code flash program process */ b_task_1ms_flag = false; } /*======2 ms task================*/ if (false != b_task_2ms_flag) { b_task_2ms_flag = false; } /*======5 ms task================*/ if (false != b_task_5ms_flag) { if(udsFbl_Get_MsgRecvFlag() == 1) { StdDiagnosticHandler(); /* cantp physical request handle */ } DiagM_MainFunction(); /* 5ms timer counter */ b_task_5ms_flag = false; } /*======10 ms task================*/ if (false != b_task_10ms_flag) { if(service11_get_rstflag((uint8_t)0x03) == TRUE) /* software reset */ { UdsFbl_SoftReset(); } if(udsFbl_Get_FuncMsgRecvFlag() == 1) { StdFuncDiagnosticHandler(); /* cantp functional request handle */ } b_task_10ms_flag = false; } /*======100 ms task================*/ if (false != b_task_100ms_flag) { if(getCheckRoutineInfo() == TRUE) /* service31 0202 Flash Driver setting */ { setCheckRoutineInfo(FALSE); verifyFlsDrv(); } if(getCheckDependInfo() == TRUE) /* service31 ff01 check dependencies */ { setCheckDependInfo(FALSE); CheckDependencies(); } //SCB_Watch_Dog_Trigger_Function(); b_task_100ms_flag = false; } /*======500 ms task================*/ if (false != b_task_500ms_flag) { SCB_Watch_Dog_Trigger_Function(); b_task_500ms_flag = false; } }