Elektroda.pl
Elektroda.pl
X
Computer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[stm32][FreeRTOS] - Zawieszanie się sterownika w tasku Idle

05 Kwi 2013 14:50 1389 2
  • Poziom 2  
    Witam,

    Używam stm32F100 z zaimplementowanym FreeRTOS ver. 7.0.0. Stworzyłem 3 taski oraz dodatkowo jedną funkcję wykonującą się w vApplicationTickHook. Problem polega na tym, że po pewnym czasie np. 5 min dzialania programu nagle sterownik zawiesza się - ląduje cały czas w funkcji portTASK_FUNCTION czyli w tasku Idle. Żaden task nie działa, jedynie wykonuje się funkcja vApplicationTickHook. Sprawdzałem w momencie zawieszenia żaden task nie jest zablokowany (xTaskIsTaskSuspended) oraz nie zmienił się priorytet tasków. Czy spotkał się ktoś z Was z takim problemem? Czy można jakoś w tym momencie zresetować taski bo próbowałem usuwać i tworzyć nowe w momencie zawieszenia lecz nie pomogło.


    Inicjalizacja tasków:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    konfiguracja FreeRTOS:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    dodałem również w pliku port.c:

    Kod: c
    Zaloguj się, aby zobaczyć kod


    bardzo proszę o pomoc!
  • Computer Controls
  • Specjalista - Mikrokontrolery
    Maciey86 napisał:
    #define configCPU_CLOCK_HZ ( ( unsigned long ) 72000000 )

    Nie żeby to był specjalny problem, ale STM32F100 to akurat działają na max 24MHz z tego co wiem...

    Maciey86 napisał:
    #define configTOTAL_HEAP_SIZE ( ( size_t ) ( 19 * 1024 ) )

    19kB na heap, tymczasem większość STM32F100 ma MAŁO RAMu...

    Maciey86 napisał:
    dodałem również w pliku port.c:

    Dodaj to po prostu w FreeRTOSConfig.h

    Maciey86 napisał:
    bardzo proszę o pomoc!

    Nawrzucałeś tego tyle, a tak naprawdę jak zwykle podstawowych informacji nie ma... Jaki mikrokontroler? Zawiesza Ci się jakaś funkcja, a nawet jej nie pokazałeś... Taski sie "zawieszają", a ich nie pokazałeś... itd. itd. itd. Jak jest problem, to się go redukuje do najprostszej postaci w której jest problem. Na tym etapie zwykle widać gdzie ten problem leży bez pytania na forum...

    4\/3!!
  • Computer Controls
  • Poziom 2  
    żywam STM32F103ZE (512KByte FLASH, 64KByte RAM) a nie stm32f100 - mój błąd przepraszam, źle napisałem

    co do funkcji w której wisi:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    co do tasków to nie mogę wrzucić całych funkcji na forum gdyż jest to projekt komercyjny jednak postaram się wrzucic jakies uproszczenia aby był podgląd na to jak one są zbudowane.