FreeRTOS, task umre pri cekani na semafor...
Stano
stano.hw na gmail.com
Středa Říjen 30 13:37:27 CET 2013
Este jedna vec, ako mate nastavenu premennu
INCLUDE_vTaskSuspend v konfiguracii RTOS
Jaroslav Buchta wrote / napísal(a):
> Stale bojuju s STM32F4 a LWIP, docela to funguje ale občas umře...
> Nyni resim zahadu se synchronizaci, cast funkce (task) pro prijem
> paketu redukovana na podstatne aktualne vypada takto:
>
> for( ;; )
> {
> STM32F4_Discovery_LEDOn(LEDO);
> int bSync = xSemaphoreTake( s_xSemaphore, 20);
> //emacBLOCK_TIME_WAITING_FOR_INPUT);
> <------------------------------------- tady to umre, ledka zustane svitit
> STM32F4_Discovery_LEDOff(LEDO);
> portTickType tckRcv = xTaskGetTickCount();
> {
> while (ETH_CheckFrameReceived())
> {
> p = low_level_input( s_pxNetIf );
> LedSetRx();
> if (ERR_OK != s_pxNetIf->input( p, s_pxNetIf))
> {
> pbuf_free(p);
> p=NULL;
> }
> bSmallDelay = pdTRUE;
> while (bSync && xTaskGetTickCount() - tckRcv < 3)
> vTaskDelay(3); <---------------------------------- bez
> tohoto zpozdeni to umre behem par minut, takhle za par hodin az dni
> }
> }
>
> Semafor je uvolnovan z ISR ale to funguje (pomaleji a se ztratami
> nekterych paketu) i bez toho diky timeoutu a nemelo by se snad stat,
> ze by to z cekani po 20ms zas nevypadlo...
> Problem je, ze tento task ma nejvyssi prioritu jako jediny, ma v
> chybovem stavu status READY (bezne vetsinou BLOCKED) a vesele si pri
> tom funguji tasky s nizsi prioritou a i IDLE. Tomuto scheduler proste
> procesor neprideli, budu dal badat - zatim reseno watchdogem coz
> samozrejme neni idealni... Divne je, ze to je casove zavisle (to
> zpozdeni ma i jiny vyznam kvuli stabilite prenosu vetsich objemu dat,
> dalsi cil badani - mozna to souvisi) a nezda se, ze by selhani melo
> nejakou vazbu na intenzitu komunikace (je na to vetsinou PINGano po 2s)
> Zasobniky tasku jsou dostatecne, stav vsech tasku si muzu normalne
> vypsat pres USB, zas to bude asi nejaka blbost ale slusna zabava na
> dlouhe vecery je jista ;-)
>
> No budu se muset nejak zorientovat v tech systemovych frontach, pokud
> nekdo neco podobneho neresil.
>
>
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
Další informace o konferenci Hw-list