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());
#define RiCGEN_ISR(INSTANCE,EVENT) RiCReactive_gen(&((INSTANCE)->ric_reactive), (RiCEvent*)EVENT, RiCTRUE)