RiCGEN_ISR() 與 CGEN_ISR() 的效果相同。
從岔斷服務常式產生事件遇到的問題是:在某些作業系統中(例如 VxWorks),不容許對資源配置記憶體、刪除記憶體或進行封鎖(例如,對號誌執行 lock())。 因此,RiCGEN_ISR() 不會配置新的事件,但會使用您必須提供的事件指標。
有兩種方式可使用 RiCGEN_ISR():
RiCGEN_ISR(myEventPool[theNextFreeEvent]);
必須將 CG::Event::DeleteAfterConsumption 內容設為 False。
必須在 CG::Event 下面設定下列靜態記憶體管理內容:
對 RiCGEN_ISR() 的呼叫如下所示:
RiCGEN_ISR(RiC_Create_ev());
RiCGEN_ISR() 的定義如下所示:
#define RiCGEN_ISR(INSTANCE,EVENT)
RiCReactive_gen(&((INSTANCE)->ric_reactive),
(RiCEvent*)EVENT, RiCTRUE)