-
Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not
-for-mail
From: Jerry1111 <j...@w...pl.pl.wp>
Newsgroups: pl.misc.elektronika
Subject: Re: printf i wielozadaniowosc (MicroC/OS-II)
Date: Wed, 30 Sep 2009 22:58:18 +0100
Organization: http://onet.pl
Lines: 84
Message-ID: <ha0ka1$pnp$1@news.onet.pl>
References: <h...@p...onet.pl> <h9tc37$135h$1@news.mm.pl>
<h...@p...onet.pl> <h9vmcj$4pm$1@atlantis.news.neostrada.pl>
<h...@p...onet.pl> <ha0f1t$cf0$1@news.onet.pl>
<h...@p...onet.pl>
NNTP-Posting-Host: 94-195-52-21.zone9.bethere.co.uk
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: news.onet.pl 1254347905 26361 94.195.52.21 (30 Sep 2009 21:58:25 GMT)
X-Complaints-To: n...@o...pl
NNTP-Posting-Date: Wed, 30 Sep 2009 21:58:25 +0000 (UTC)
User-Agent: Thunderbird 2.0.0.23 (Windows/20090812)
In-Reply-To: <h...@p...onet.pl>
X-Antivirus: avast! (VPS 090929-0, 29/09/2009), Outbound message
X-Antivirus-Status: Clean
Xref: news-archive.icm.edu.pl pl.misc.elektronika:572347
[ ukryj nagłówki ]Pszemol wrote:
>> Kurcze, nie widze tego. Ale nie widze tez swojej odpowiedzi z wczoraj
>> - ciekawe czemu.
>
> A ja widzę obie :-)
Magia.
>>> Ten RT system miał mi gwarantować, że w danym momencie czasu
>>> wykonuje się ten task spośród tasków gotowych do działania który
>>> ma najwyższy priorytet. Ten warunek dotyczy zarówno typowego
>>> reschedulingu (funkcja OS_Sched()) jak i reschedulingu po
>>> zakończeniu obsługi przerwania. Na stronie 104 tej samej ksiązki:
>>> "The conclusion of the ISR is marked by calling OSIntExit(), which
>>> decrements the interrupt nesting counter.
>>
>> Zaciekawilo mnie (bo ja wiem ze Nios czasem przerywa sobie printfy -
>> mi to nie przeszkadza) czemu tak sie dzieje. Popatrzylem na zrodla
>> drivera uart w Nios 9.0 i tam nie ma OSIntExit pod koniec
>> altera_avalon_uart_rxirq().
>
> rxirq() wołane jest z ogólnego handlera przerwania od portu
> szeregowego gdzie jest sprawdzany status register i wywoływane
> są poszczególne procedury skoku do txirq lub rxirq().
Tak, ale nigdzie OS nie jest informowany ze aktualnie obslugujemy
przerwanie... Na poczatku (AFAIR) ma byc OSIntEnter(), a na koncu ma byc
OSIntExit(). Powinno to byc odpowiednio na poczatku/koncu ogolnego
przerwania gdzie sprawdza status register - a nic tam nie ma. Jedyne
odwolania do OSa w tx to flaga ze w txbuf jest miejsce.
>>> A więc wciąż nie rozumiem dlaczego w momencie gdy przyszło
>>> przerwanie od portu szeregowego (bo tylko w taki sposób mogło
>>> się zwolnić miejsce w buforze portu) funkcja obsługi przerwania
>>> RS232 nie obudziła tasku 0 który czeka na to miejsce i scheduler
>>> zawołał mi do tablicy task 4 lub task 7 zamiast wrócić do tasku 0.
>>>
>>> To jest właśnie cała zagadka o której próbuję tu podyskutować :-)
>>
>> ;-)
>> Jak Ci sie chce to przesledz krok po kroku co fprintf wyczynia i
>> szukaj podejrzanych miejsc. Z doswiadczenia z wczesniejszych wersji -
>> drivery Altery sa niestety troche dodupne jesli chodzi o RTOS.
>>
>> Aha, ja uzywam fifoed_avalon_uart zamiast oryginala - duzo
>> mniejszy bol glowy.
>
> No tak chyba trzeba będzie zrobić...
>
> A tak w ogóle to jak Ty sobie radzisz z obsługą takich debug messages
> z różnych tasków w wielozadaniowym systemie?
Fifoed z 2kb hardware txbuf ;-)
Krzaki wyskakuja rzadko, wiec sie nie przejmuje.
Na rx tez dobrze dac bufor - mocno odciaza procka jak masz troche danych
do odebrania.
> Masz jakiś fajny
> pomysł który chciałbyś tu sprzedać koledze? ;-) Bo właśnie planuję to
> przerobić i chodzi mi kilka po głowie pomysłów ale żaden mi się
> bardzo nie podoba :-)))) Chcialbym przede wszystkim uniknac alokacji
> dynamicznej pamieci, bo to sie wylozy wczesniej niz pozniej...
> Na razie mam statyczne teksty z messages w kodzie taskow ale wrzucam
> je intensywnie do fprintfa aby wypelnic konkretnymi danymi,
Poprobuj sprintf i write - moze bedzie lepiej. Ja tak robie tekstowe
transmisje. ZTCP to port otwieram jako O_NONBLOCK (ale tu tez trza
sprawdzic jak lepiej sie zachowuje z przerywaniem danych - pamietam ze
cos tam bylo).
> wiec potem
> wypadaloby ten strumien gdzies wyslac dalej... Moze sobie
> zrobie jakis fikcyjny port szeregowy ktory zamiast fizycznie znaki
> wysylac bedzie sobie je "kolejkowal" do wyslania przez task #29... hm...
Myslalem o kolejce - duzo mocy zje, albo trzeba by pointery pamietac do
calych messages (a to implikuje pamiec dynamiczna).
Inny problem jest taki, ze bufor musisz miec wiekszy niz max. ilosc
messagow do wyslania, bo inaczej watek bedzie stal i czekal na wolny
bufor tx. Dlatego zaczalem uzywac fifoed uarta - duzo pomaga.
--
Jerry1111
Następne wpisy z tego wątku
- 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
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- Propagation velocity v/c dla kabli RF
- Jakie natynkowe podwójne gniazdo z bolcem (2P+PE)
- Czujnik nacisku
- Protoków komunikacyjny do urządzenia pomiarowego
- Hiszpania bez pradu
- amperomierz w plusie
- 3G-nadal działa
- Historia pewnego miernika kalibratora
- Ustym 4k Pro i wyświetlacz
- Czemu rozwaliło celę?
- Wojna w portfelu
- Jaki trojfazowy licznik tuya lub podobny?
- Problem z dekoderem adresów
- Intel się wyprzedaje: po 10latach pchnęli pakiet kontrolny Altery za 1/4 kwoty zakupu
Najnowsze wątki
- 2025-05-15 Nowy rodzaj zagrożenie ze strony elektryków :)
- 2025-05-15 Bus inpostu, przemycający ludzi, walnął w nocy w tira zaparkowanego na autostradzie 5 ofiar
- 2025-05-15 Alert RCB w sprawie dziewczynki
- 2025-05-15 Kurierski bus przemycał ludzi i zasnął nad ranem za kierownicą.
- 2025-05-15 Dęblin => JavaScript / Node / Fullstack Developer <=
- 2025-05-14 Tsue i smsy
- 2025-05-14 Biedna kobieta jechała samochodem na targ aby sprzedać klamoty i dostała 300 zł mandatu
- 2025-05-14 hot spot traci connected device
- 2025-05-14 John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- 2025-05-14 John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- 2025-05-14 Wariant rumuński
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Rolnicy protestują w Szczecinie
- 2025-05-14 Niemcy: Przychody ze sprzedaży produktów Fairtrade w 2024r. wzrosły o rekordowe 13% do 2,9GEUR