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