Index: ecos_common/startup_firmware.c =================================================================== --- ecos_common/startup_firmware.c (revision 129312) +++ ecos_common/startup_firmware.c (working copy) @@ -93,6 +93,35 @@ static uint16_t s_taglist_usAllowedportforipaddresszero_0 = 0; /* modified by taglist */ static uint16_t s_taglist_usAllowedportforipaddresszero_1 = 0; /* modified by taglist */ + + +PS_WORKER_H s_hWorkerPhreak0, s_hWorkerPhreak1; +PS_JOB_T s_tPhreak0Job, s_tPhreak1Job; + +void Phreak0Job(PS_JOB_T *ptJob) +{ + int i; + + for (i = 0; i < 10000; i++) { + asm("nop"); + } + + OSAL_Sleep(5); + PS_Worker_QueueJob(s_hWorkerPhreak0, ptJob); +} + +void Phreak1Job(PS_JOB_T *ptJob) +{ + int i; + + for (i = 0; i < 10000; i++) { + asm("nop"); + } + + OSAL_Sleep(5); + PS_Worker_QueueJob(s_hWorkerPhreak1, ptJob); +} + /* Hardwrae timer used for cyclic send trigger */ EIP_HW_1MS_CBK_CONFIG_T s_tEipHwAdaption_ecos = { @@ -1101,7 +1130,7 @@ STARTUP_LOG_ERROR(ulRet, "Worker init:" PTP_WORKER_NAME); } #ifndef USE_NO_EXCLUSIVE_LWIP_WORKER - else if (SUCCESS_HIL_OK != (ulRet = startup_firmware_specific_resources_init_worker("LWIPWORKER", EIP_TASK_PRIO_LOWPRIO-1, LWIP_DEFAULT_TASK_STACKSIZE, &hWorkerLwip))) + else if (SUCCESS_HIL_OK != (ulRet = startup_firmware_specific_resources_init_worker("LWIPWORKER", EIP_TASK_PRIO_LOWPRIO-2, LWIP_DEFAULT_TASK_STACKSIZE, &hWorkerLwip))) { STARTUP_LOG_ERROR(ulRet, "Worker init:" "LWIPWORKER"); } @@ -1114,8 +1143,22 @@ { STARTUP_LOG_ERROR(ulRet, "Ethernet subsystem"); } + else if (SUCCESS_HIL_OK != (ulRet = startup_firmware_specific_resources_init_worker("phreak0", EIP_TASK_PRIO_LOWPRIO-3, LWIP_DEFAULT_TASK_STACKSIZE, &s_hWorkerPhreak0))) + { + STARTUP_LOG_ERROR(ulRet, "Worker init: phreak"); + } + else if (SUCCESS_HIL_OK != (ulRet = startup_firmware_specific_resources_init_worker("phreak1", EIP_TASK_PRIO_LOWPRIO-1, LWIP_DEFAULT_TASK_STACKSIZE, &s_hWorkerPhreak1))) + { + STARTUP_LOG_ERROR(ulRet, "Worker init: phreak"); + } else { + + s_tPhreak0Job.pfnFunc = Phreak0Job; + PS_Worker_QueueJob(s_hWorkerPhreak0, &s_tPhreak0Job); + + s_tPhreak1Job.pfnFunc = Phreak1Job; + PS_Worker_QueueJob(s_hWorkerPhreak1, &s_tPhreak1Job); #if defined(EIP_ENABLE_SYSLOG) DbgLog_RamQueueInit(s_aulDbgLog_Buffer, sizeof(s_aulDbgLog_Buffer));