void alarm1_handler(intptr_t exinf) { ER ercd; check_point(14); ercd = iwup_tsk(TASK3); check_ercd(ercd, E_NOSPT); check_point(15); ercd = irel_wai(TASK3); check_ercd(ercd, E_NOSPT); check_point(16); ercd = iwup_tsk(TASK1); check_ercd(ercd, E_OK); check_point(17); ercd = iact_tsk(TASK3); check_ercd(ercd, E_OK); check_point(18); ercd = iact_tsk(TASK4); check_ercd(ercd, E_OK); check_point(19); ercd = irot_rdq(MID_PRIORITY); check_ercd(ercd, E_OK); check_point(20); ercd = irot_rdq(MID_PRIORITY); check_ercd(ercd, E_NOSPT); check_point(21); return; check_point(0); }
/* * 周期ハンドラ * * HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY の各優先度のレディキュー * を回転させる. */ void cyclic_handler(VP_INT exinf) { irot_rdq(HIGH_PRIORITY); irot_rdq(MID_PRIORITY); irot_rdq(LOW_PRIORITY); }
/* * アラームハンドラ * * HIGH_PRIORITY,MID_PRIORITY,LOW_PRIORITY の各優先度のレディキュー * を回転させる. */ void alarm_handler(intptr_t exinf) { SVC_PERROR(irot_rdq(HIGH_PRIORITY)); SVC_PERROR(irot_rdq(MID_PRIORITY)); SVC_PERROR(irot_rdq(LOW_PRIORITY)); }