-
Data: 2009-09-29 16:47:34
Temat: Re: printf i wielozadaniowosc (MicroC/OS-II)
Od: "Pszemol" <P...@P...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]"Zbych" <z...@o...pl> wrote in message news:h9tc37$135h$1@news.mm.pl...
> Pszemol pisze:
>
>> gdy wątek o wyższym priorytecie nie ma nic do roboty i czeka na
>> zdarzenie.
> [...]
>> Otóż co widzę, to że na wyjściu generowanym przez tą funkcję fprintf
>> (strumień znaków RS232, "plikiem" dla fprintf jest port szeregowy)
>> widzę że wątek o niższym priorytecie wchodzi z butami w linię tekstu
>> wątka o wyższym priorytecie
> [...]
>> Czy ktoś mógłby mi to wytłumaczyć?
>
> Żeby to dobrze wytłumaczyć to trzeba zobaczyć jak to jest
> zaimplementowane. Szklana kula mówi tylko, że wątek o wyższym priorytecie
> oddaje czas innym wątkom, bo czeka na zwolnienie miejsca w buforze
> nadawczym RSa. Przy czym nie masz żadnej gwarancji, że po zwolnieniu
> miejsca pierwszy do RSa dobierze się wątek o najwyższym priorytecie. Żeby
> wiedzieć co się dzieje to trzeba by na osobnym kanale wyrzucać kiedy i
> jakie wątki są uruchamiane.
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...
Tu masz przykład:
"Barrier 0: s:14 M: c5aa5Barrier 4: handling legacy sensor readings
(time:1607)
Barr 4: Decrement counter (26) for legacy sensor (time:1607)
Barrier task 4, 'unknown' - wait one dev delay increment... (time:1608)
, M: 28521, M: 8b227, M: eddfc, M: 50b03, M: b365c, M: 223b1, M: 66cf0"
To wyżej to był efekt 4 osobnych wywołan funkcji fprintf:
task1 (barrier 0) zrobił najpierw to:
fprn(probe_out, "Barrier %d: s:%02ld M:%6lx, M:%6lx, M:%6lx, M:%6lx,
M:%6lx, M:%6lx, M:%6lx\r\n",
i w trakcie gdy utknął w tej linii czekając na RSa task 5 (barrier 4) zrobił
to:
fprn(barr_out, "Barrier %d: handling legacy sensor readings
(time:%ld)\r\n",
potem to w zupełnie innym miejscu kodu:
fprn(barr_out, "Barr %d: Decrement counter (%ld) for probe #%d
(time:%ld)\r\n",
i za moment to:
fprn(barr_out, "Barrier task %d, '%s' - wait one dev delay
increment... (time:%ld)\r\n",
w czasie gdy task 1 wisiał sobie i czekał na zwolnienie RSa...
Tak czy inaczej muszę przerobić to aby zostało to w kodzie na dłużej.
Chyba zrobię nowy task o najniższym priorytecie który zajmie się
odbiorem tekstów od tasków roboczych o wyższych priorytetach
i wstawianiem tych tekstów do portu szeregowego...
Następne wpisy z tego wątku
- 29.09.09 16:59 A.L.
- 29.09.09 18:08 grg12
- 29.09.09 18:35 Pszemol
- 29.09.09 20:46 Adam Dybkowski
- 29.09.09 21:04 Jerry1111
- 29.09.09 22:06 Pszemol
- 30.09.09 13:25 Zbych
- 30.09.09 14:20 Pszemol
- 30.09.09 14:45 jotefka
- 30.09.09 15:25 Pszemol
- 30.09.09 18:43 Pszemol
- 30.09.09 20:35 DJ
- 30.09.09 21:09 Pszemol
- 01.10.09 18:10 J.F.
- 02.10.09 06:11 Artur M. Piwko
Najnowsze wątki z tej grupy
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
Najnowsze wątki
- 2025-06-18 Poznań => MLOps Engineer <=
- 2025-06-18 Gdańsk => Mainframe (z/OS, Assembler) Developer <=
- 2025-06-18 Wrocław => SAP ABAP Developer <=
- 2025-06-18 Łódź => Account Manager <=
- 2025-06-18 Warszawa => MLOps Engineer <=
- 2025-06-18 Warszawa => Software Engineer .Net <=
- 2025-06-18 Zakaz używania Kreta
- 2025-06-18 Gdańsk => Controlling systems Consultant <=
- 2025-06-18 Warszawa => Senior Programmer C <=
- 2025-06-18 W państwie tuskiego "prawa" obywatel/poseł ma obowiązek planować pod kątem że będzie aresztowany [Urbaniak]
- 2025-06-18 Warszawa => Mid/Senior IT Recruiter <=
- 2025-06-18 Lublin => Programista Delphi <=
- 2025-06-18 Warszawa => NMS System Administrator <=
- 2025-06-18 Re: Auto miało pozostać na wstecznym biegu z włączonym silnikiem. Kiedy kobieta ponownie wsiadła do pojazdu, mogło dojść do tragicznej pomyłki - zamiast wcisnąć hamulec, niefortunnie nacisnęła pedał gazu.
- 2025-06-17 Re: Auto miało pozostać na wstecznym biegu zwłączonym silnikiem. Kiedy kobieta ponownie wsiadła do pojazdu, mogło dojść do tragicznej pomyłki - zamiast wcisnąć hamulec, niefortunnie nacisnęła pedał gazu.