优化缩短关中断的时间
生活随笔
收集整理的這篇文章主要介紹了
优化缩短关中断的时间
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1 優化縮短關中斷的時間
- 1.1 提取耗時操作
- 1.2 劃分為多次開關中斷
1 優化縮短關中斷的時間
無論是開關全局中斷還是關指定中斷,都會對中斷的響應時間造成影響。關中斷的時間越長,中斷被延遲響應的時間也越長,所以在編寫代碼時,要盡可能地保護關中斷的時間要盡可能地短。但是有時會發現,任務或低優先級中斷訪問資源的時間較長,此時我們需要調整代碼,縮短關中斷時間。
1.1 提取耗時操作
這種思路簡而言之是:調整代碼,優化訪問資源的時間,將部分耗時的操作從原操作中提取出來。
在之間的示例中,可以看到有個鏈表遍歷。如果單就鏈表遍歷本身來看,其速度還是比較快的,但是由于遍歷過程中有使用xprintf打印,如果考慮打印是通過串口輸出,那么整個遍歷過程將會比較耗時。當結點數量很多,串口的波特率較低時,其耗時就更長。
在這種情況下,如果采用關中斷的方式,將會導致中斷長時間的關閉,產生很大的影響。通過調整代碼,我們可以將打印這個耗時操作給提取出來,不在鏈表遍歷過程中執行。這樣鏈表遍歷過程就可以快速地執行完畢,從而盡快地讓中斷執行。
1.2 劃分為多次開關中斷
有時我們會對大塊的代碼進行開關中斷保護,代碼塊越大,往往執行時間也越多。
但如果對這些大塊代碼分析可能會發現,并不是所有的代碼都涉及到對共享資源的訪問。所以有時可以將這些大塊代碼進行"劃分",將原本對整個大塊代碼進行開關中斷保護,分隔為多塊保護。這樣就相比之前就允許中斷盡可能早的響應。
參考資料:
總結
以上是生活随笔為你收集整理的优化缩短关中断的时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家具板10大品牌各位知道吗?哪个更好?
- 下一篇: 请求模式解决共享资源冲突