Skocz do zawartości

Materiały odnośnie programowania w RTOS pod STM32


atlantis86

Pomocna odpowiedź

Eksperymentowałem trochę z "czystym" FreeRTOS na Raspberry Pi Pico, nie napotykając na jakieś większe problemy.

Teraz próbuję uruchomić jeden projekt na CMSIS v2 RTOS na STM32F407 (projekt "wyklikany" w STM32CubeMX) i co jakiś czas trafiam na jakiś problem. Wiele rzeczy nie działa tak, jak powinno działać. Wygląda na to, że jeszcze będę musiał trochę doczytać i douczyć się.

Czy możecie polecić jakiś materiały, które tłumaczyłyby takie zagadnienia jak:

  1. Zarządzanie pamięcią i przydzielanie jej poszczególnym wątkom, obsługa zmiennych przy korzystaniu z RTOS.
  2. Korzystanie z przerwań i DMA razem z RTOS-em.
  3. Ustawianie priorytetów w taki sposób, żeby jeden wątek nie "zagryzał" drugiego.
  4. Korzystanie z FatFS razem z RTOS i DMA (SDIO).

Jakaś książka albo dobry kurs on-line?

Edytowano przez atlantis86
Link do komentarza
Share on other sites

1. Ilość pamięci wykorzystywanej przez dany wątek można ustawić (a właściwie ograniczyć) w CubeMX. Można ustawić dodatkowy wątek który zostanie wywołany, gdy obszar pamięci zostanie naruszony.
2. Istotne jest, aby odpowiednio nadać priorytety. Osobiście nie napotkałem na żadne problemy z tym związane
3. Chyba na tym właśnie to polega 😉 Po to ustawiamy priorytety tak, aby jeden wątek wykluczył drugi. Nadając takie same priorytety, wątki będą po sobie następowały, zakładając że nie utkniemy w jednym z nich.
4. Tutaj tak pięknie nie jest, kod generowany przez CubeMX mało kiedy działa 🙂 W moim przypadku (L493) musiałem edytować callback przerwania DMA
https://community.st.com/s/question/0D53W00000asPehSAE/stm32l4-freertosdma2-channel-4-problem

Osobiście przygodę z FreeRTOS zacząłem od:

 

Edytowano przez kronikary
  • Lubię! 1
Link do komentarza
Share on other sites

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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.