//周期ハンドラ0用の関数 void cyc0(int exinf) { // replace from VP_INT to int //タスクを起動する //具体的には,対象タスクを休止状態から,実行状態に移行させ, //タスクの起動時に行うべき処理を行う iact_tsk(TSK0); }
void alarm_handler(intptr_t exinf) { ID tskid = (ID)exinf; syslog(LOG_INFO , "Alarm handler is raised."); SVC(iact_tsk(tskid)); }
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); }
static mrb_value mrb_ssp_thread_iact(mrb_state *mrb, mrb_value self) { ER retval; mrb_value id = mrb_iv_get(mrb, self, mrb_intern_lit(mrb, "@task_id")); mrb_int id_num = mrb_fixnum(id); retval = iact_tsk(id_num); if (retval != E_OK) { return(mrb_false_value()); } return(mrb_true_value()); }
void cpuexc_handler(void *p_excinf) { ER ercd; switch (++cpuexc_count) { case 1: check_point(3); check_state_i(true, false, false, true, false); check_assert(xsns_xpn(p_excinf) == false); check_assert(xsns_dpn(p_excinf) == false); check_point(4); ercd = iact_tsk(TASK2); check_ercd(ercd, E_OK); ercd = iloc_cpu(); check_ercd(ercd, E_OK); break; case 2: check_point(11); check_state_i(true, false, false, true, false); check_assert(xsns_xpn(p_excinf) == false); check_assert(xsns_dpn(p_excinf) == false); check_point(12); ercd = iras_tex(TASK1, 1U); check_ercd(ercd, E_OK); ercd = iloc_cpu(); check_ercd(ercd, E_OK); break; default: check_point(0); break; } }
void main_task_cychdr(intptr_t exinf) { ID tskid = (ID)exinf; (void)iact_tsk(tskid); }
/* * 周期ハンドラ */ void cyclic_handler(intptr_t exinf) { syslog_0(LOG_NOTICE, "begin_measure(3)"); begin_measure(3); iact_tsk(TASK2); }
//***************************************************************************** // TASK : cyc1 // DESCRIPTION : 40msec periodical Task handler //***************************************************************************** void cyc1(VP_INT exinf) { iact_tsk(TSK1); }
//***************************************************************************** // TASK : cyc0 // DESCRIPTION : 4msec periodical Task handler //***************************************************************************** void cyc0(VP_INT exinf) { iact_tsk(TSK0); }