eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingMicroC/OS - II który task ma prioryted równy 1? › MicroC/OS - II który task ma prioryted równy 1?
  • 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: MicroC/OS - II który task ma prioryted równy 1?
    Date: Fri, 19 Mar 2010 15:52:07 -0500
    Organization: http://onet.pl
    Lines: 34
    Message-ID: <h...@p...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=original
    Content-Transfer-Encoding: 8bit
    X-Trace: news.onet.pl 1269032147 25713 204.248.56.195 (19 Mar 2010 20:55:47 GMT)
    X-Complaints-To: n...@o...pl
    NNTP-Posting-Date: Fri, 19 Mar 2010 20:55:47 +0000 (UTC)
    X-Posting-Agent: Hamster/1.3.13.0
    X-Priority: 3
    X-MSMail-Priority: Normal
    Importance: Normal
    X-Newsreader: Microsoft Windows Live Mail 14.0.8089.726
    X-MimeOLE: Produced By Microsoft MimeOLE V14.0.8089.726
    Xref: news-archive.icm.edu.pl pl.comp.programming:185344
    [ ukryj nagłówki ]

    Witam,
    szukam właśnie błędu w starym programie pod systemem MicroC/OS-II.
    Któryś task wykłada się błędem systemowym - aby stwierdzić który task
    dodałem do funkcji która się wykłada kilka instrukcji do wyczajenia
    z którego tasku została wywołana:

    funkcja()
    {
    ....
    OS_TCB tcb;
    ::OSTaskQuery(OS_PRIO_SELF, &tcb);
    i teraz w zmiennej tcb.OSTCBPrio mam Prioryted tasku który zawołał
    funkcję.
    }

    Analizując logi systemowe widzę, że często takie wywołanie raportuje
    task o priorytecie 1, podczas gdy w systemie lista tasków zaczyna się
    od numeru 5 i kończy na numerze 14. Spodziewam się więc dużo
    wpisów od tasków o numerach priorytetów 14 i niżej - i dostaje je,
    ale nie spodziewam się wpisu od tasku o numerze poniżej 5 a dostaje
    wpis od tasku o numerze 1.

    Wiem, że funkcja OSInit() tworzy jeden lub dwa taski: Idle i opcjonalnie
    Statistic, ale te taski są tworzone o najniższych priorytetach (duże
    numery).

    Czy zawołanie OSTaskQuerry zwraca numer tasku 1 może dla obsługi
    przerwań? Ktoś się orientuje co to ?

    A jeśli tak, to co się stanie gdy w czasie błędu ktoś w takiej funkcji
    wywołanej z obsługi przerwań wywoła funkcję systemową
    ::OSTaskSuspend(OS_PRIO_SELF) czyli będzie próbował ubić
    task o priorytecie 1?

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

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: