-
Data: 2009-09-30 18:10:19
Temat: Re: printf i wielozadaniowosc (MicroC/OS-II)
Od: "Jan Kowalski" <c...@N...gazeta.pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]Pszemol <P...@P...com> napisał(a):
> "Zbych" <a...@o...pl> wrote in message
> news:h9vmcj$4pm$1@atlantis.news.neostrada.pl...
> > Pszemol pisze:
> >
> >> To jest oczywista oczywistość, że wątek o priorytecie 1 czeka na port
> >> RS i oddaje sterowanie :-) Mnie interesuje jak to się dzieje, że w czasie
> >> gdy task 1 oddał sterowanie task 4 lub 7 był wstanie trzy razy wysłać
> >> linię znaków do RS'a trzema osobnymi wywołaniami fprintfa...
> >
> > Ktoś na pme podpowiedział ci, żebyś sprawdził, czy prawidłowo
> > ustawiłeś priorytety wątków.
>
> Nie do końca - on nazwał mnie debilem :-) i zarzucił że task o priorytecie
> zero jest najmniej ważnym taskiem w systemie i z tego powodu - to co
> obserwuję jest jak najbardziej naturalne. Zdemaskował tym w bardzo
> niekulturalny sposób swój brak zaznajomienia z systemem MicroC/OS-II.
>
> W książce autorstwa Jean J. Labrosse "MicroC/OS-II" wydanie
> drugie z 2002 roku stoi na stronie 88 jak byk:
> "Each task is assigned a unique priority level between 0 and
> OS_LOWEST_PRIO, inclusive (see OS_CFG.H). Task priority
> OS_LOWEST_PRIO is always assigned to the idle task when
> uC/OS-II is initialized."
Czy ci się to podoba czy nie problem może wynikać z odwrotnej interpretacji
numeru(!) priorytetów. To prawda, że w książce znajduje się taki cytat, ale
musisz sprawdzić, wręcz w kodach źródłowych, jak jest wybierany następny task
do uruchomienia.
Dla pewnego systemu mam do wyboru albo MicroC/OS albo RTOS firmowy. Kernel
RTOSa firmowego szereguje taski wg. rosnących priorytetów tj. task 60 wykona
się przed taskiem 41. Wg. logiki MicroC/OS powinno być dokładnie na odwrót
task 41 przed taskiem 60. Niemniej kod aplikacji w żadnym miejscu nie zawiera
translacji priorytetów (wg. logiki MicroC/OS przy 64 taskach task 60 powinien
dostać priorytet 4, a task 41 priorytet 23) tak aby dopasować się do
MicroC/OS. Tak więc, albo używasz książki niekompatybilnej z wersją kodu
źródłowego, albo facet sam nie wie co pisze.
Odszukaj scheduler i sprawdź jak jest naprawdę. To może być kwestia zamiany
operatów "<" i ">" w czasie klepania kodu shedulera a system będzie się
zachowywać totalnie niezgodnie z oczekiwaniami. MicroC/OS jest raczej prostym
systemem i nie ma powodu dla którego miałoby się mu mieszać w opisywany przez
ciebie sposób.
--
Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
Następne wpisy z tego wątku
- 30.09.09 18:43 Pszemol
- 30.09.09 20:28 Jerry1111
- 30.09.09 20:35 DJ
- 30.09.09 21:09 Pszemol
- 30.09.09 21:15 Pszemol
- 30.09.09 21:58 Jerry1111
- 02.10.09 06:11 Artur M. Piwko
- 13.10.09 21:06 AK
- 13.10.09 21:34 Jerry1111
- 13.10.09 21:47 Pszemol
- 19.10.09 22:31 Pszemol
- 21.10.09 20:18 Jerry1111
Najnowsze wątki z tej grupy
- Prośba o identyfikację komponentu
- Smart gniazdko straciło na zasięgu wifi?
- Smart gniazdko straciło zasięg wifi?
- nurtuje mnie
- dziwna sprawa...
- Laptop MSI się nie uruchamia.
- Dobra listwa LED (CRI 90-95, bez migotania)
- masowe programowanie AVR
- Fajny pomysł na monitor z klawiaturą
- Sprzedawanie zaszyfrowanych filmów na płytach Blu-Ray bez kluczy deszyfrujących
- Aparat, zewnętrzny mikrofon, brum
- Wieszanie się przy aktywnym SMP
- Prognozowanie zużycia energii przez PGE?
- Odkurzacz mnie bije :(
- Rapsberry Pi i synchronizacja plików
Najnowsze wątki
- 2024-10-19 PUE ZUS -- administracyjna nuda...
- 2024-10-18 Marsz niepodleglosci
- 2024-10-18 Pożar parkingu w Luton
- 2024-10-18 Łódź => Spedytor Międzynarodowy <=
- 2024-10-18 Gdańsk => Technical Lead ( (Java Background)) <=
- 2024-10-18 Warszawa => Head of International Freight Forwarding Department <=
- 2024-10-18 uwazajmy na haczyki w umowach
- 2024-10-18 Warszawa => Account Manager - Usługi rekrutacyjne <=
- 2024-10-18 Białystok => Full Stack web developer (obszar .Net Core, Angular6+) <
- 2024-10-18 Gdańsk => Software .Net Developer <=
- 2024-10-18 Warszawa => Junior Rekruter <=
- 2024-10-18 Warszawa => Key Account Manager <=
- 2024-10-18 Przeróbka na zgrzewarkę "równoległą"
- 2024-10-18 Ostrów Wielkopolski => Laravel PHP Developer <=
- 2024-10-18 Warszawa => Data Scientist / Data Engineer (modele predykcyjne) <=