RiCGEN_ISR() には、CGEN_ISR() と同じ効果があります。
割り込みサービス・ルーチンからのイベントの生成に関する問題は、一部のオペレーティング・システム (VxWorks など) では、メモリーの割り振り、メモリーの削除、またはリソースのブロック (例えば、セマフォーに関する lock()) が許可されないということです。 したがって、RiCGEN_ISR() は、新規イベントを割り振りませんが、提供する必要のあるイベントを示すポインターを使用します。
RiCGEN_ISR() を使用する方法には、以下の 2 とおりがあります。
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)