GPIO pinini yüksek/düşük değiştiren ve en yüksek ve en düşük (udelay
kullanarak) gecikme olan bir rutine sahibim ve sonra GPIO'yu örneklendirir bir süre için devlet. Kodun bu kısmının programlayıcı tarafından veya herhangi bir olası kesinti tarafından önceden boşaltılmadan gerçekleştirildiğinden emin olmam gerekir. Çift çekirdekli ARM sisteminde kod çalıştırıyorum, bu yüzden SMP olmalı. Spin_Lock_IrqSave()
, bu amaç için yeterince güvenli midir? Kodumun bazen bir şekilde kesintiye uğradığını ancak henüz kanıt olmadığını hissediyorum.Linux'ta, herhangi bir kesinti olmaksızın bir kod dizisinin nasıl yürütüleceğinden emin olunması
Çok teşekkürler.
Cevabınız için çok teşekkürler. Hem ara vermek hem de engellemeyi devre dışı bırakmak ve rutinimden herhangi birinin herhangi bir kesinti olmadan yürütülebilmesini sağlamak istiyorum. Rutin GPIO sürücüsünü (gpio_set/reset_value, gpio_direction_input/output) ve ayrıca udelay işlevlerini çağırmalıdır. Bu durumda, spin_lock_irqsave yeterince güvenli mi? Tekrar teşekkürler – user1697356