eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingprintf i wielozadaniowosc (MicroC/OS-II) › Re: printf i wielozadaniowosc (MicroC/OS-II)
  • Data: 2009-09-29 16:59:54
    Temat: Re: printf i wielozadaniowosc (MicroC/OS-II)
    Od: A.L. <a...@a...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    On Tue, 29 Sep 2009 10:42:52 -0500, "Pszemol" <P...@P...com>
    wrote:

    >
    >Jak wytłumaczyć takie efekty?
    >
    [...]
    >
    >Czy ktoś mógłby mi to wytłumaczyć?

    JA sie bardzd dawno tym zajmowlem i pod zupelnie inym systeme, a
    bardzo dzawno znaczy BARDZO dawno. Ale mialem podobny problem

    1. Task o wysokim priorytecie pisze do UART. UART ma wlasny bufor.
    Bufor sie przepelnil i taksk dostal notyfikacje. System zawiesil task.

    2. Wiec task o niskim priorytecie dostal CPU; w miedzyczasie UART
    zaczal oproznaic budor, wiec taks o niskim priorytecie mogl pisac. Po
    niedlugim czasie system zauwazyl ze task o wysokim priorytecie czeka
    na UART, wiec zasiesil task o niskim priorytecie i ten zaczal pisac do
    UART

    W efekcie wyszla "sieczka" zlozona z fragmentow informacji z roznych
    taskow.

    Kluczowe pytanie jes co to znaczy ze printf "zakonczyl" dzialanie.
    Powinien raportowac "zakonczenie" dzialania tylko wdedy gdy informacja
    zostala rzeczywiscie fizycznie wyslana do klienta.

    Nie wiem jak to jest w twoim systemie, ale podejrzewam ze cos takiego
    lub podobnego.

    Remedium byloby zamkniecie printf w osobnym tasku z wlasnum,
    nieograniczonym buforem i potraktowanei calosci jako sekcji krytycznej

    A.L.

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: