eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingprintf i wielozadaniowosc (MicroC/OS-II) › Re: printf i wielozadaniowosc (MicroC/OS-II)
  • Path: news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!not
    -for-mail
    From: "Pszemol" <P...@P...com>
    Newsgroups: pl.comp.programming
    Subject: Re: printf i wielozadaniowosc (MicroC/OS-II)
    Date: Tue, 29 Sep 2009 17:06:11 -0500
    Organization: http://onet.pl
    Lines: 43
    Message-ID: <h...@p...onet.pl>
    References: <h...@p...onet.pl> <h9tsp1$pfi$1@news.onet.pl>
    Reply-To: "Pszemol" <P...@B...com>
    NNTP-Posting-Host: gw.petrovend.com
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1254262202 3642 204.248.56.195 (29 Sep 2009 22:10:02 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Tue, 29 Sep 2009 22:10:02 +0000 (UTC)
    X-Posting-Agent: Hamster/1.3.13.0
    In-Reply-To: <h9tsp1$pfi$1@news.onet.pl>
    X-Priority: 3
    X-MSMail-Priority: Normal
    Importance: Normal
    X-Newsreader: Microsoft Windows Live Mail 14.0.8064.206
    X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8064.206
    Xref: news-archive.icm.edu.pl pl.comp.programming:183682
    [ ukryj nagłówki ]

    "Jerry1111" <j...@w...pl.pl.wp> wrote in message
    news:h9tsp1$pfi$1@news.onet.pl...
    > Wcale nie jest zakazana.

    Dlatego ująłem to w cudzysłów :-)

    > Bo tu nie chodzi o printf, tylko o reentrancje calej biblioteki newlib. Z
    > drugiej strony Altera ma to zalatwione, wiec nie rozumiem czemu problem?

    No tak to ma załatwione że wcina się task 4 lub 7 w środek linii tasku 1.

    > Bo nie masz tego jako atomic operation. Jestem na 99% pewny ze jako atomic
    > jest tylko zrobione wysylanie pojedynczych znakow.
    >
    > Ma to sens, bo inaczej blokowalbys system na dosc dlugi czas (chyba ze
    > masz duze fifo - wtedy mozna sie o to pokusic).

    Dla dodania tła do zagadnienia:
    Fifo softwareowe jest 64 znaki. Uart pracuje z baud 115200
    bez handshake i procesor NiosII-e biega z zegarem 80MHz...

    Przerwy w linii od tasku 1 są ZAWSZE przy granicy argumentu do
    printfa (albo przed %d albo po). Nigdy nie przerywa w trakcie tak
    aby urwało w środku wyrazu czy też w środku zmiennej integer :-)
    Dlatego nie bardzo mi się chce wierzyć, że kwestia jest w wysyłaniu
    znak po znaku - raczej chodzi o parser printfa.

    >> Task o priorytecie 3 schodki niżej, wciął się w środek fprintf'a od tasku
    >> o prawie najwyższym priorytecie i to w miejscu, gdzie skończyło się
    >> parsowanie argumentu %x i zaczął text printf'a.
    >
    > Bo w miedzyczasie byla zmiana kontekstu. Czemu?
    > Bo wyzszy watek czekal na wyslanie znaku...
    [...]
    > A jak w priority 0 wstawic OSTimeDly(10), to tez nic innego sie nie
    > uruchomi? AFAIR driver usart Altery czeka na signal jak ma pelny bufor,
    > wiec w miedzyczasie inny watek idzie.

    Oczywiście niższe taski mogą działać tylko wtedy gdy wyższy czeka.
    To wiem. Natomiast interesujące jest że przerwa i wcięcie się niskiego
    tasku w linię wysokiego jest nie w przypadkowym miejjscu tylko
    na granicy argumentu do printfa.

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: