Zastanawiam siê nad u¿yciem tego systemu pod WINARM w uC AT91SAM7S256. Tylko mam pytanie. Czy je¶li mam funkcjê w której jest pêtla while, a wewn±trz niej obs³uguje sobie USB tworzy to co¶ w rodzaju while(true) czyli nieskoñczonej pêtli. I uruchomiê to wszystko jako task to usb bêdzie dzia³a³o mi na osobnym w±tku? I bêde sobie móg³ odpaliæ dodatkowe w±tki które robi± inne rzeczy w tym samym czasie? Na PC tak w³a¶nie to by wygl±da³o ale czy na uC te¿ jest z tym tak samo. Czy nie trzeba uwa¿aæ na jakie¶ przerwania? i inne tego typu rzeczy? Czy je¶li decyduje siê na u¿ycie systemu
http://www.freertos.org/
Dec 22, 2005
1 Replies
formatting link
to wszystkie przerwania powinienem obs³ugiwaæ przez ten system? Czy te¿ mo¿na bezpiecznie mieszaæ kod. Czy je¶li ko¿ystam z takiego systemu to czy tracê kontrolê nad czasem wykonania? No bo bêde mia³ parê w±tków które bêd± siê przeplataæ tak¿e chyba nie bêde móg³ za³o¿yæ ¿e np. 4 instrukcje nie zostan± rozdzielona nagle i wykona siê inny w±tek. Czy to w ogóle dzia³a tak jak watki na PC czy raczej to jest do jakiej¶ wygodnej obs³ugi przerwañ bo jako¶ sobie nie mogê wyobraziæ trzech w±tków dzia³aj±cych na uC (d³u¿ej trwa³a by chyba ich obs³uga ni¿ wykonanie ich kodu).
TAK
Jesli przerwanie ma wspolpracowac z jakims watkiem (np obudzic watek)- to trzeba uzywac specjalnych makr. Jest tam kilka przykladow jak to robic...
Na PC takze nalezy synchronizowac watki,aby nie bylo problemow. Watkow mozesz miec nawet 10, a jak czesto rtos przelacza watki to zalezy od Ciebie.standardowo jest chyba co 1ms.
Ogólnie polecam! Jest to o wiele wydajniejsze i szybsze niz jedna wielka petla w main().W³a¶nie budzenie watku przez przerwanie powoduje ze procesor robi to, co w danym momencie jest najwazniejsze.
Pozdr. jfk
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required