jfk
Guest
Fri Mar 26, 2004 10:35 pm
Witam
czy ktos z powodzeniem probowal uruchomic RTOS na ATMega8?
Sciagnąlem cos takiego ze strony avrfreaks, ale nie wiem czy to aby nie za
duze obciazenie dla mniejszych prockow.
Moj program w tej chwili zajmuje juz 4k i pottrzebuje chyba troche ramu.
Taski mam wywolywane po kolei w petli - niestety niektore trwaja zbyt dlugo
i blokują mi pozostale.
Czy RTOS bylby wiec dobrym rozwiazaniem?
Pozdrawiam
jfk
P.S. Do poniedzialku i milego weekendu
Jan Dubiec
Guest
Sat Mar 27, 2004 12:27 am
jfk wrote:
Quote:
Witam
czy ktos z powodzeniem probowal uruchomic RTOS na ATMega8?
Ja nie próbowałem.

Quote:
Sciagnąlem cos takiego ze strony avrfreaks, ale nie wiem czy to aby nie za
duze obciazenie dla mniejszych prockow.
To zależy od wielu rzeczy, ale powiem że raczej nie jest to duże obciążenie.
Quote:
Moj program w tej chwili zajmuje juz 4k i pottrzebuje chyba troche ramu.
A co to za RTOS? FreeRTOS?
Quote:
Taski mam wywolywane po kolei w petli
A po co? To co opisałeś wyżej to jest jedno zadanie z sekwencyjnie
wywoływanymi funkcjami/procedurami więc użycie jakiegokolwiek (RT)OS-a ma
raczej mały sens. Podczas startu aplikacji powinieneś utworzyć potrzebne
zadania i już. Mają działać niezależnie (oczywiście z dokładnością do tych
miejsc, gdzie muszą się synchronizować przy dostępie do wpólnych zasobów)
- w końcu chyba po to chcesz użyć systemu wielozadaniowego.
Quote:
- niestety niektore trwaja zbyt dlugo i blokują mi pozostale.
Jeśli aplikacja wygląda tak jak napisałeś, to w zasadzie zbytnio się nie
dziwię. :-)
Pamiętaj też że FreeRTOS oferuje dwa modele wielozadaniowości - z
wywłaszczaniem i cooperative (kooperatywny?). Jeśli wybierzesz to drugie,
to musisz bardziej uważać przy tworzeniu aplikacji - raczej nie powinieneś
używać "busy waiting" i od czasu do czasu (przynajmniej raz) w danym
zadaniu powinieneś wywołać taskYIELD.
Regards,
/J.D.