# **Interrupt, ISR, top half, bottom half and multiplexing** ###### tags: `C LANGUAGE` `interrupt` `ISR` `top half` <style> .blue { color: blue; } .bgblue { color: blue; font-size: 24px; font-weight: bold; } .red { color: red; font-size: 24px; font-weight: bold; } </style> Authors: WhoAmI, CrazyDog email: kccddb@gmail.com Date: 20221217 Copyright: CC BY-NC-SA 這裡只是提觀念, 沒有硬體設備 很難實驗 基本上要運用 OS 設計觀念, <span class="blue">ISR 程式不能執行太久</span> 以前 幫別的老師的研究生改過 程式, 他的毛病就是 ISR 做太久! 造成錯誤, 這也是很多 學過 微處理的朋友 很少注意的問題, 要運用 timer interrupt 分段處理 還有一家廠商 也是出現這問題, 有告訴他們總經理, 他們的問題出現在 遙控器. 有人亂按就出問題 書本與實務 還是有差距的 以前 通常 測試一環 有 老人與小孩的行為~不按牌理出牌,亂按! Linux OS 就分 TOP half 與 BOTTOM half 來處理 最有名的就是 NIC (network interface controller) driver <span class="red">再次提醒 OS 很重要</span> ISR (Interrupt Service Routine ) ![](https://i.imgur.com/NxAMphx.jpg) ![](https://i.imgur.com/YO6l6Wv.jpg)