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

  • Janos250

    őstag

    válasz Blasius #19708 üzenetére

    Bocs, nem tudom milyen kontrollert használsz. ESP32-n lefordul.
    A volatile azt jelenti, hogy ha egy változót nemrégiben használt a processzor, akkor annak a tartalma a cache-ben van még, és ha nincs volatile, akkor onnan kivehető. Ha van volatile előtte, akkor minden egyes használatkor az eredeti helyőről kell beolvasni. Ez akkor létszükséglet, ha "valaki más " (pl. másik szál, interrupt) is változtat a változó értékén. Ilyenkor lehet figyelni pl. arra, hogy ha egy vektorba rakjuk az értékeket, és a foglaltságot növeljük, akkor mi történik, ha a kettő között kéri a program (pl. interrupttal) valamelyik értéket. A legősibb, hogy addig letiltjuk az interruptot, a korszerűbb meg a mutex, hogy nem engedjük, hogy másik szál használja.

    Amit linkeltél, ott nem látok bajt a sorrendiséggel, vagy párhuzamos hozzáféréssel.

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

Hirdetés