Masker Interupsi GPIO
Pin I/O tujuan umum (GPIO) yang dikonfigurasi sebagai input interupsi dapat ditutupi dan dibuka kemasnya selain diaktifkan dan dinonaktifkan.
Jika interupsi yang dipicu tingkat dari perangkat periferal diaktifkan dan aktif, tetapi handler perangkap kernel tidak dapat segera menjalankan rutinitas layanan interupsi (ISR) perangkat untuk menghapus gangguan, handler menutupi gangguan pada pin GPIO untuk mencegah pin berulang kali menyebabkan lebih banyak gangguan. Kemudian, setelah ISR berjalan dan membersihkan gangguan, gangguan dapat dilepaskan dengan aman.
Menutupi gangguan tidak menghapus atau menonaktifkan gangguan. Jika gangguan GPIO diaktifkan, aktif, dan ditutupi, membuka kedok gangguan ini menyebabkan perangkat pengontrol GPIO memberi sinyal permintaan interupsi ke prosesor.
Bit masker interupsi GPIO tidak berpengaruh saat gangguan GPIO dinonaktifkan. Fungsi panggilan balik CLIENT_EnableInterrupt mengatur bit masker untuk interupsi ke nol; artinya, interupsi awalnya dilepaskan kemasannya setelah diaktifkan.
Perbedaan penting antara masking dan menonaktifkan pin interupsi GPIO adalah bahwa masking mempertahankan pengaturan interupsi-konfigurasi pin, sedangkan menonaktifkan pin tidak. Saat pin interupsi GPIO ditutupi, pin ini mempertahankan mode interupsi yang diprogram sebelumnya (dipicu tepi atau dipicu tingkat), polaritas (aktif-tinggi, aktif-rendah, atau aktif-keduanya), dan pengaturan debounce. Pengaturan ini berlaku lagi segera setelah interupsi dilepaskan kedampingannya. Namun, ketika interupsi dinonaktifkan, semua pengaturan interupsi-konfigurasi pin hilang. Setelah pin diaktifkan, pin harus diprogram lagi dengan pengaturan interrupt-configuration yang diperlukan.
Beberapa pengontrol GPIO mengimplementasikan, dalam perangkat keras, register interupsi-masker yang terpisah dan berbeda dari register yang mengaktifkan interupsi.
Namun, pengontrol GPIO lainnya menyediakan satu set register perangkat keras yang menggabungkan fungsi interupsi-masker dan interupsi-aktifkan. Driver untuk pengontrol ini meniru pendaftaran interupsi-masker dan interupsi-aktifkan terpisah dalam perangkat lunak. Untuk melakukannya, driver ini melacak status logis bit yang mengaktifkan interupsi dan bit interupsi-masker dan memanipulasi bit yang sesuai dalam register perangkat keras untuk secara akurat mencerminkan perilaku gabungan logis interupsi-aktif dan interupsi-mask bit untuk setiap gangguan GPIO.