Skocz do zawartości

FreeRTOS na ESP32...prośba o pomoc w zrozumieniu kilku rzeczy/funkcji


Pomocna odpowiedź

Napisano (edytowany)

Witam państwa😉 jako że jestem stanowczym człowiekiem i jeszcze trzy dni temu obiecywałem sobie że nie będę się uczył nowych rzeczy, lub takich których nie będę używał w najblizszej przyszlosci jak np. freeRTOS, tak że ten......no od dwóch dni piłuję temat freeRTOS'a😜 i mam w związku z tym kilka pytań, pierwsze..

Tworząc zadania, zadania te uruchomią się automatycznie czy potrzebuje jeszcze wywołać 

vTaskStartScheduler

Bo znalazłem wiele przykładów gdzie ta funkcja jest wywoływana lub nie jest i działa...też wyczytałem różne opinie że jest potrzebna ta funkcja, lub że nie jest potrzebna bo utworzone zadanie startuje automatycznie..jak to jest z tym?

Edytowano przez farmaceuta
(edytowany)
2 minuty temu, ethanak napisał:

A tu patrzyłeś? https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/freertos.html

Akurat masz tam odpowiedź na swoje pytanie (i kilka następnych)

Pewnie że patrzyłem...ale sytuacja jest taka jak ze wszytko nowym którego się uczymy, czyli nie wszystko jest oczywiste i zrozumiałe od "strzała"😉

Edytowano przez farmaceuta
2 minuty temu, ethanak napisał:

A więc nie musisz.

Bardzo dziękuję za odpowiedź, bo mi to dużo nerwów oszczędza😜 (a ich akurat nie potrzebuje w większej dawce😅

Drugie pytanie.. 

Usuwam zadanie za pomocą 

vtaskDelete()

czy to z innego zadania, czy to bieżące zadanie, i kury strasznie pieją żeby zwalniać pamięć bo alokacja dynamiczna nie śledzi czy coś zostało usunięte (zadanie). I sytuacja podobna do powyższej...jedni "twardo" piszą że pamięć zostanie automatycznie zwolniona przez zadanie bezczynne (nie rozumiem co to za zadanie🤔?), a inni że trzeba samemu tego pilnować i zwalniać "ręcznie"...to jak to z tym jest?

5 minut temu, ethanak napisał:

Ale co chcesz zwalniać? 

Pamięć która przydzielilem zadaniu😜 już teraz mi się pomotało..pamięć dla zadań jest na stosie czy stercie?

Pamięć jest taka jaką przydzielisz. Przy okazji - idle task to nie jest "task bezczynny". Przeczytaj sobie może to, co jest pod linkiem który podałem, tam jest wspomniane co to "idle task".

Ogólnie: jak nie robisz jakichś jaj z taskami automatycznie uruchomionymi przez system to nie musisz się przejmować.

  • Pomogłeś! 1
14 minut temu, ethanak napisał:

 Przy okazji - idle task to nie jest "task bezczynny". 

No tak mi translator angielskie strony tłumaczył . 😉 

 

15 minut temu, ethanak napisał:

Przeczytaj sobie może to, co jest pod linkiem który podałem, tam jest wspomniane co to "idle task".

Ok poczytam bardziej uważnie 😉 

 

16 minut temu, ethanak napisał:

Ogólnie: jak nie robisz jakichś jaj z taskami automatycznie uruchomionymi przez system to nie musisz się przejmować.

Ok dzięki 👍 a tak dopytać jeszcze muszę...a jak sprawa wygląda z taskami które tworzę/usuwam podczas trwania programu (dynamicznie) te też same zwolnia pamięć?

Pamięć się zwalnia automatycznie jeśli się automatycznie przydzieliła.

A czytanie dokumentacji technicznej translatorem to baaaaaaaardzo zły pomysł.

Przed chwilą, ethanak napisał:

A czytanie dokumentacji technicznej translatorem to baaaaaaaardzo zły pomysł.

Wiem o tym, ale jest to jedyna słuszna droga jeśli siezna angielski na pół gwizdka 😜 wiem już jak jedno przekręcone słowo potrafi zmienić znaczenie całego długiego zdania😅 

Trzecie pytanie(chyba ostatnie) 

mam sobie jakiś kod,zmienna krytyczną, która zostaje zmieniana w przerwaniu, ale też może być zmieniana w innym przerwaniu i jeśli to przerwanie ma wyższy priorytet to może dojść do "uszkodzenia" tej zmiennej..więc używam czegoś takiego 

  portENTER_CRITICAL_ISR(&timerMux3);
  //kod...
  portEXIT_CRITICAL_ISR(&timerMux3);

te critical_isr to taki odpowiednik atomic_block dla AVR (robią to samo tak?)

Nie.

portEnterCritical (czy jak to tam, bez isr) blokuje przerwania. Ten z isr wywołuje się z przerwania (w sumie nie wiem po co bo nigdy się tym nie interesowałem).

A znanie na pół gwizdka może dawać lepsze wyniki niż translator.

Co Twoim zdaniem może znaczyć "Przedsiębiorstwo do Spock" (autentyk z translatora)?

  • Pomogłeś! 1
9 minut temu, ethanak napisał:

Co Twoim zdaniem może znaczyć "Przedsiębiorstwo do Spock" (autentyk z translatora)?

nie mam pojęcia..😜 a translator też tego słowa nie chce przetłumaczyć 😉

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...