1. 程式人生 > >code技巧之臨界區保護

code技巧之臨界區保護

            在DSP程式開發中,往往涉及到多個TSK共同訪問共享資源,此時各個TSK會形成競爭關係,這樣需要類似Linux C中的互斥量等機制,這裡介紹一種是使用HWI中斷機制的臨界區保護方法:

             #define   CRITICAL_DECL_PROTECT(lev)  Uint32 lev

             #define   CRITICAL_PROTECT(lev)  lev = HWI_disable()

             #define   CRITICAL_UNPROTECT(lev)  HWI_restore(lev)

           使用方式如下:

              1)在程式中,先呼叫CRITICAL_DECL_PROTECT(lev)

               2)在訪問臨界區前, CRITICAL_PROTECT(lev)

               3)訪問臨界區資源

               4)訪問完臨界區資源後,回覆HWI中斷 CRITICAL_UNPROTECT(lev)