logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Różnice między FreeRTOS dla Arduino a standardowym FreeRTOS

Janusz_kk 01 Sie 2019 08:59 777 9
REKLAMA
  • #1 18089477
    Janusz_kk
    Poziom 39  
    Posty: 5696
    Pomógł: 216
    Ocena: 1431
    No ok, ale to jest inny freertos :) bo pod arduino, ja oglądalem zwykły http://www.freertos.org/
  • REKLAMA
  • #2 18089607
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #3 18089661
    Janusz_kk
    Poziom 39  
    Posty: 5696
    Pomógł: 216
    Ocena: 1431
    o_Tadeusz napisał:
    Szkoda, że nie ma tematu o RTOS dla Arduino

    Trzeba założyć :)
    o_Tadeusz napisał:
    Gdy RTOS używa przerwań od WD (nie zadziała na każdym AVR, dajmy na to mega128) to jak task oddaje czas innym zadaniom? AVR nie może generować przerwań programowo więc jak to jest realizowane?

    Nowsze atmegi mogą bo mają przerwania od WD, starsze startują od resetu, ale pamięć nie jest kasowana, więc wystarczy sprawdzić określony obszar
    czy są jakieś dane, sumę kontrolną i pokierować dalszym startem.
  • #4 18089864
    Konto nie istnieje
    Poziom 1  
  • #5 18090021
    Janusz_kk
    Poziom 39  
    Posty: 5696
    Pomógł: 216
    Ocena: 1431
    o_Tadeusz napisał:
    Ale ten start "chwilę" trwa.

    Noo trwa, ale co w związku z tym, przecież to nie mój pomysł, ja bym użył timera.

    o_Tadeusz napisał:
    Ale nadal nie wiem jak task oddaje czas innym gdy nie ma nic do roboty. Jak wywołuje przerwanie od WD?

    No musi się zawiesić czyli pętla nieskończona, WD wtedy sam się wywoła.
  • #6 18090043
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #7 18090143
    Janusz_kk
    Poziom 39  
    Posty: 5696
    Pomógł: 216
    Ocena: 1431
    o_Tadeusz napisał:
    W praktyce po czasie zadziałanie WD. To już nie jest RTOS, to bardziej Windows, który "błaga" aplikację aby oddała czas dla CPU.

    No ale WD tak działa, nie ma innej możliwości go wywołać, jedynie rtos może wywołać scheduler szybciej gdy wątek sam się skończy, bez pomocy WD, ale jak ma go wywłaszczyć to tylko przez WD. A z windowsami to zupełnie inna historia jest.
  • REKLAMA
  • #8 18090174
    Konto nie istnieje
    Poziom 1  
  • #9 18090222
    Janusz_kk
    Poziom 39  
    Posty: 5696
    Pomógł: 216
    Ocena: 1431
    o_Tadeusz napisał:
    To oznacza, że nie jest to RTOS, skoro task nie może "powiedzieć" już nie "potrzebuję CPU".

    I robi WD, w czym masz problem? a że trwa to 15ms to już taka uroda jego.

    o_Tadeusz napisał:
    Akurat w tym przypadku, to wygląda podobnie. System NIE PANUJE nad taskami, to taski rządzą.

    Zatrzymałeś się na W95,98?
  • #10 18090292
    Konto nie istnieje
    Poziom 1  

Podsumowanie tematu

✨ Dyskusja dotyczy różnic między FreeRTOS dla Arduino a standardowym FreeRTOS. Uczestnicy poruszają kwestie związane z zarządzaniem czasem w systemach RTOS na platformach AVR, zwłaszcza w kontekście ograniczeń pamięci RAM oraz sposobów wywoływania przerwań. Zauważają, że w przypadku starszych mikrokontrolerów, takich jak ATmega, przerwania od watchdog (WD) są kluczowe dla oddawania czasu innym zadaniom. Wskazują również na problemy związane z brakiem nadzoru nad zadaniami, co może prowadzić do sytuacji, w której system nie jest w stanie efektywnie zarządzać przydziałem CPU. W końcu, porównują działanie RTOS do systemów operacyjnych, takich jak Windows, podkreślając, że w przypadku FreeRTOS dla Arduino, system nie ma pełnej kontroli nad zadaniami.
Wygenerowane przez model językowy.
REKLAMA