Hirdetés

Új hozzászólás Aktív témák

  • Janos250

    őstag

    válasz _q #11905 üzenetére

    A 0-s magra valóban kevesebb dolgot lehet rakni, és csak alacsony prioritásút, mert valóban az kezeli a WiFit, és az lényeges, hogy magas prioritással menjen, de én szoktam rá rakni programokat, amik "ráérnek".
    Ha a C++11 szerint használod, akkor az OS elrendezi saját magának, mi hol menjen, de nem biztos, hogy ez lesz az optimum.
    Én a Core0-n futó részek ciklusába jó hosszú várakozásokat szoktam tenni, hogy ráérős legyen. Ha éppen nincs dolga, egyből megy a várakozásba, azaz az OS egyből másnak adja a futási jogot.
    Ez azért egy alapvető különbség a klasszikus várakozáshoz képest (atmega328 Arduino alatt), ott ugyanis a proci ténylegesen semmi hasznosat nem csinál, amig várakozik.
    A taskoknak 1 msec-et ad az OS, aztán cserél. Ez egyben azt is jelenti, hogy mindkét magon 1 milsecenként megszakit akkor is,
    ha a legmagasabb prioritású task fut, vagy ha minden más le van tiltva, akkor is. Ha mindent, pl. megszakitást tiltasz, akkor a task csere vizsgálat miatti
    megszakitást - ha jól emlékszem - olyan 5-6 microsecre lehet levinni, lentebb nekem nem sikerült.
    Külön jó még a kétféle megszakitas figyelés, hogy az egyik akkor kezd el futni, ha rá kerül a sor, a másik meg azonnal.

Új hozzászólás Aktív témák