eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaSTM32F107 + lwIP + FreeRTOSRe: STM32F107 + lwIP + FreeRTOS
  • Data: 2022-11-02 21:16:59
    Temat: Re: STM32F107 + lwIP + FreeRTOS
    Od: Atlantis <m...@w...pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Ok, w chwili wolnego czasu udało mi się uruchomić część starego kodu na
    tej płytce, za pomocą FreeRTOS-a. Zarówno lwIP jak i sterownik USB MSD
    działają idealnie - wszystko czego potrzebowały to dość duże zwiększenie
    rozmiaru sterty, z której są alokowane stosy dla poszczególnych tasków.
    Zużycie pamięci RAM doszło w tej chwili do ponad 88%, ale urządzenie jak
    na razie nie pokazuje oznak niestabilności wynikające z nadpisywania stosu.

    Możliwość stosowania normalnych socketów momentalnie wyeliminowała
    wszystkie problemy. Nawet streamy audio o nieco większym bitrate
    odtwarzają się perfekcyjnie, a połączenia są stabilne. Odtwarzanie z
    pendrive'a oraz karty SD również działa poprawnie, a pamieć SPI RAM
    sprawdza się w roli bufora na odbierane dane.

    Teraz pozostało mi do rozwiązania kilka problemów wynikających z
    zastosowania samego RTOS-a.

    Po pierwsze terowanie:
    Bez systemu operacyjnego wszystko było proste - funkcje reagujące na
    naciśnięcia przycisków czy kręcenie enkoderem były wykonywane w tej
    samej pętli głównej. Miałem wiec absolutną pewność, że jeśli wykona się
    funkcja wywołana naciśnięciem przycisku "stop" albo "next" to maszyna
    stanów odpowiedzialna za odtwarzanie na chwilę obecną zakończyła
    wykonywanie swoich operacji i mogę po prostu zmienić jej stan, zamknąć
    połączenie i zainicjować następne albo przełączyć na odtwarzanie
    kolejnego pliku.
    Teraz sprawdzanie przycisków ma miejsce w innym tasku niż obsługa
    maszyny stanów. Domyślam się, że nie mogę tak po prostu w dowolnym
    momencie z innego tasku zamknąć połączenia, sprawdzić albo zmienić stanu
    maszyny stanów obsługującej odtwarzanie. Jaki jest najlepszy sposób na
    upewnienie się, że obsługa przycisków nie wywoła żadnej waznej funkcji
    zanim w innym tasku nie zakończy się wykonywać VS1003_handle()?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: