void main_task(intptr_t unused) { shared_memory = new SharedMemory(); sensor_data = new SensorData(); sensors = new Sensors(); aa = new AvoidAction(shared_memory, sensor_data, sensors); ca = new ColorAction(shared_memory, sensor_data, sensors); wa = new WalkAction(shared_memory, sensor_data, sensors); init(); Arbitrator arbitrator(sensor_data, sensors); // Start the tasks, will sleep imidiatly act_tsk(aa->taskID()); act_tsk(ca->taskID()); act_tsk(wa->taskID()); arbitrator.apply(aa); arbitrator.apply(ca); arbitrator.apply(wa); arbitrator.start(); return; }
void alarm1_handler(intptr_t exinf) { ER_UINT ercd; check_point(4); ercd = wup_tsk(TASK3); check_ercd(ercd, E_NOSPT); ercd = rel_wai(TASK3); check_ercd(ercd, E_NOSPT); ercd = wup_tsk(TASK1); check_ercd(ercd, E_OK); ercd = act_tsk(TASK3); check_ercd(ercd, E_OK); ercd = act_tsk(TASK4); check_ercd(ercd, E_OK); ercd = rot_rdq(MID_PRIORITY); check_ercd(ercd, E_OK); ercd = rot_rdq(MID_PRIORITY); check_ercd(ercd, E_NOSPT); return; check_point(0); }
void task1(intptr_t exinf) { ER_UINT ercd; test_start(__FILE__); check_point(1); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); ercd = act_tsk(TASK4); check_ercd(ercd, E_OK); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(4); ercd = snd_mbf(MBF1, string2, 25); check_ercd(ercd, E_OK); check_point(6); check_assert(strncmp(buf1, string2, 25) == 0); ercd = act_tsk(TASK3); check_ercd(ercd, E_OK); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(13); ercd = snd_mbf(MBF1, string2, 10); check_ercd(ercd, E_OK); ercd = rcv_mbf(MBF1, buf1); check_ercd(ercd, 10); check_assert(strncmp(buf1, string2, 10) == 0); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(24); ercd = chg_pri(TASK3, LOW_PRIORITY); check_ercd(ercd, E_OK); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(34); ercd = chg_pri(TASK2, HIGH_PRIORITY); check_ercd(ercd, E_OK); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(0); }
void task1(intptr_t exinf) { ER_UINT ercd; test_start(__FILE__); check_point(1); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(6); ercd = chg_pri(TASK3, HIGH_PRIORITY); check_ercd(ercd, E_NOSPT); check_point(7); ercd = wup_tsk(TASK3); check_ercd(ercd, E_NOSPT); check_point(8); ercd = can_wup(TASK3); check_ercd(ercd, E_NOSPT); check_point(9); ercd = rel_wai(TASK3); check_ercd(ercd, E_NOSPT); check_point(10); ercd = sus_tsk(TASK3); check_ercd(ercd, E_NOSPT); check_point(11); ercd = rsm_tsk(TASK3); check_ercd(ercd, E_NOSPT); check_point(12); ercd = sta_alm(ALM1, 10); check_ercd(ercd, E_OK); check_point(13); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(27); ercd = act_tsk(TASK3); check_ercd(ercd, E_OK); check_point(28); ercd = act_tsk(TASK4); check_ercd(ercd, E_OK); check_point(29); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_finish(34); check_point(0); }
static void initialize(intptr_t unused) { btstack_memory_init(); hardware_initialize(); SVC_PERROR(act_tsk(BT_TSK)); SVC_PERROR(act_tsk(BT_QOS_TSK)); #if defined(DEBUG) syslog(LOG_NOTICE, "bluetooth_dri initialized."); #endif }
void task1(intptr_t exinf) { ER ercd; check_point(1); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(3); ercd = act_tsk(TASK3); check_ercd(ercd, E_OK); check_point(4); ercd = act_tsk(TASK4); check_ercd(ercd, E_OK); check_point(5); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(9); ercd = act_tsk(TASK5); check_ercd(ercd, E_OK); check_point(10); ercd = act_tsk(TASK6); check_ercd(ercd, E_OK); check_point(11); ercd = sus_tsk(TASK6); check_ercd(ercd, E_OK); check_point(12); ercd = sus_tsk(TASK5); check_ercd(ercd, E_OK); check_point(13); ercd = rsm_tsk(TASK5); check_ercd(ercd, E_OK); check_point(14); ercd = rsm_tsk(TASK6); check_ercd(ercd, E_OK); check_point(15); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(31); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_finish(38); check_point(0); }
void task1(intptr_t exinf) { ER_UINT ercd; T_RTSK rtsk; T_RMTX rmtx; PRI intpri; test_start(__FILE__); check_point(1); ercd = sta_alm(ALM1, TEST_TIME_CP); check_ercd(ercd, E_OK); ercd = slp_tsk(); check_ercd(ercd, E_OK); check_point(3); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(5); ercd = ref_tsk(TASK2, &rtsk); check_ercd(ercd, E_OK); check_assert(rtsk.tskstat == TTS_DMT); ercd = ref_mtx(MTX1, &rmtx); check_ercd(ercd, E_OK); check_assert(rmtx.htskid == TSK_NONE); check_assert(rmtx.wtskid == TSK_NONE); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(16); ercd = get_ipm(&intpri); check_ercd(ercd, E_OK); check_assert(intpri == TIPM_ENAALL); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(23); check_assert(sns_dsp() == false); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_finish(28); check_point(0); }
/* * メインタスク(中優先度) */ void main_task(intptr_t exinf) { uint_t i; syslog_0(LOG_NOTICE, "Performance evaluation program (4)"); init_hist(1, MAX_TIME, histarea1); init_hist(2, MAX_TIME, histarea2); init_hist(3, MAX_TIME, histarea3); logtask_flush(0U); sus_tsk(LOGTASK); /* システムログタスクの動作を止める */ /* * タスク切換えを起こさないact_tskの処理時間の測定 */ for (i = 0; i < NO_MEASURE; i++) { begin_measure(1); act_tsk(TASK3); end_measure(1); slp_tsk(); } /* * タスク切換えを起こすact_tskの処理時間の測定 */ for (i = 0; i < NO_MEASURE; i++) { begin_measure(2); act_tsk(TASK1); } /* * タスク切換えを起こすiact_tskの処理時間の測定(測定回数は10分の1) */ task2_count = 0; sta_cyc(CYC1); while (task2_count < NO_MEASURE / 10) ; stp_cyc(CYC1); rsm_tsk(LOGTASK); /* システムログタスクの動作を再開する */ syslog_0(LOG_NOTICE, "Execution times of act_tsk without task switch"); print_hist(1); syslog_0(LOG_NOTICE, "Execution times of act_tsk with task switch"); print_hist(2); syslog_0(LOG_NOTICE, "Execution times of iact_tsk with task switch"); print_hist(3); ext_ker(); }
/* * 計測ルーチン */ void perf_eval(uint_t n) { uint_t i, j; init_hist(1, MAX_TIME, histarea1); sus_tsk(LOGTASK); /* システムログタスクの動作を止める */ for (i = 0; i < NO_MEASURE; i++) { ini_flg(FLG1); for (j = 0; j < n; j++) { act_tsk(task_list[j]); } chg_pri(TSK_SELF, MAIN_PRIORITY_LOW); /* タスクが待ち状態に入るのを待つ */ chg_pri(TSK_SELF, TPRI_INI); begin_measure(1); set_flg(FLG1, 0x01U); end_measure(1); chg_pri(TSK_SELF, MAIN_PRIORITY_LOW); /* タスクが終了するのを待つ */ chg_pri(TSK_SELF, TPRI_INI); } rsm_tsk(LOGTASK); /* システムログタスクの動作を再開する */ syslog_1(LOG_NOTICE, "Execution times of set_flg" " when %d tasks are released from waiting.", n); print_hist(1); logtask_flush(0U); }
/* * main task (low priority) */ void main_task(intptr_t exinf) { syslog_0(LOG_NOTICE, "Performance evaluation program (1)"); init_hist(1, MAX_TIME, histarea1); init_hist(2, MAX_TIME, histarea2); syslog_flush(); act_tsk(TASK1); act_tsk(TASK2); syslog_0(LOG_NOTICE, "Execution times of wup_tsk -> slp_tsk"); print_hist(1); syslog_0(LOG_NOTICE, "Execution times of slp_tsk -> wup_tsk"); print_hist(2); test_finish(); }
void task3(intptr_t exinf) { ER_UINT ercd; switch (++task3_count) { case 1: check_point(5); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(7); ercd = ext_tsk(); check_ercd(ercd, E_OK); check_point(0); case 2: check_point(11); ercd = ext_tsk(); check_ercd(ercd, E_OK); check_point(0); default: check_point(0); } check_point(0); }
/* * performance evaluation routine */ void perf_eval(uint_t n) { uint_t i, j; init_hist(1, MAX_TIME, histarea1); for (i = 0; i < NO_MEASURE; i++) { ini_flg(FLG1); for (j = 0; j < n; j++) { act_tsk(task_list[j]); } chg_pri(TSK_SELF, MAIN_PRIORITY_LOW); /* let the task in the waiting queue of the event flag */ chg_pri(TSK_SELF, TPRI_INI); begin_measure(1); set_flg(FLG1, 0x01U); end_measure(1); chg_pri(TSK_SELF, MAIN_PRIORITY_LOW); /* wait the task exits */ chg_pri(TSK_SELF, TPRI_INI); } syslog_1(LOG_NOTICE, "Execution times of set_flg" " when %d tasks are released from waiting.", n); print_hist(1); syslog_flush(); }
void bt_recv_task(intptr_t unused) { static char buf[3]; while ((fgets(buf, 3, shared_memory->bt_con))) { switch(buf) { case "y": shared_memory->yellow = 1; break; case "b": shared_memory->blue = 1; break; case "r": shared_memory->red = 1; break; default: break; } cycle_print(buf); if (shared_memory->yellow == 1 && shared_memory->blue == 1 && shared_memory->red == 1) act_tsk(FIN_TASK); //cycle_print((char*)"Bluetooth Task"); sleep(500); } }
void perform() { switch(RobotAction::sensor_data->color) { case COLOR_YELLOW: RobotAction::shared_memory->yellow = 1; cycle_print((char*)"Saw Yellow!"); fprintf(RobotAction::shared_memory->bt_con, "y\n"); break; case COLOR_BLUE: RobotAction::shared_memory->blue = 1; cycle_print((char*)"Saw Blue!"); fprintf(RobotAction::shared_memory->bt_con, "b\n"); break; case COLOR_RED: RobotAction::shared_memory->red = 1; cycle_print((char*)"Saw Red!"); fprintf(RobotAction::shared_memory->bt_con, "r\n"); break; default: break; } if (RobotAction::shared_memory->yellow == 1 && RobotAction::shared_memory->blue == 1 && RobotAction::shared_memory->red == 1) act_tsk(FIN_TASK); wakeup(MAIN_TASK); }
void cpuexc_handler(void *p_excinf) { syslog(LOG_NOTICE, "CPU exception handler (p_excinf = %08p).", p_excinf); if (sns_ctx() != true) { syslog(LOG_WARNING, "sns_ctx() is not true in CPU exception handler."); } if (sns_dpn() != true) { syslog(LOG_WARNING, "sns_dpn() is not true in CPU exception handler."); } syslog(LOG_INFO, "sns_loc = %d sns_dsp = %d xsns_dpn = %d", sns_loc(), sns_dsp(), xsns_dpn(p_excinf)); if (xsns_dpn(p_excinf)) { syslog(LOG_NOTICE, "Sample program ends with exception."); SVC_PERROR(ext_ker()); assert(0); } #ifdef PREPARE_RETURN_CPUEXC PREPARE_RETURN_CPUEXC; SVC_PERROR(get_tid(&cpuexc_tskid)); SVC_PERROR(act_tsk(EXC_TASK)); #else /* PREPARE_RETURN_CPUEXC */ syslog(LOG_NOTICE, "Sample program ends with exception."); SVC_PERROR(ext_ker()); assert(0); #endif /* PREPARE_RETURN_CPUEXC */ }
/* * メインタスク(低優先度) */ void main_task(intptr_t exinf) { syslog_0(LOG_NOTICE, "Performance evaluation program (1)"); init_hist(1); init_hist(2); act_tsk(TASK1); act_tsk(TASK2); syslog_0(LOG_NOTICE, "Execution times of wup_tsk -> slp_tsk"); print_hist(1); syslog_0(LOG_NOTICE, "Execution times of slp_tsk -> wup_tsk"); print_hist(2); check_finish(0); }
static void initialize(intptr_t unused) { /** * Initialize frame buffers */ static bitmap_t console_bitmap; static uint8_t lcd_console_fb_vmem[((WIDTH + 2) / 3 * HEIGHT)]; console_bitmap.height = HEIGHT; console_bitmap.width = WIDTH; console_bitmap.pixels = lcd_console_fb_vmem; ev3rt_console_fb = &console_bitmap; lcd_screen_fb = &lcd_screen; on_display_fb = lcd_screen_fb; initialize_lcd_font(); initialize_lcd_spi(); st7586fb_probe(&spidev); st7586fb_ioctl(spidev.drvdata, FB_ST7586_INIT_DISPLAY, 0); st7586fb_ioctl(spidev.drvdata, FB_ST7586_START_DISPLAY, 0); lcd_screen.pixels = ((struct fb_info *)(spidev.drvdata))->screen_base; lcd_screen.height = HEIGHT; lcd_screen.width = WIDTH; global_brick_info.lcd_screen = &lcd_screen; SVC_PERROR(act_tsk(LCD_REFRESH_TSK)); }
/** TELNETデーモン・タスクの開始 * @param tskno Telnetタスク番号( 0〜(TELNET_DAEMON_TASK_COUNT-1) ) ****************************************************************************** */ ER TELNET_Start( ID tskno ) { ER errcd; errcd = act_tsk( TELNET_DAEMON_FIRST_TASK + tskno ); /* タスク起動 */ return( errcd ); }
void task3(intptr_t exinf) { ER ercd; switch (++task3_count) { case 1: check_point(22); ercd = act_tsk(TASK2); check_ercd(ercd, E_OK); check_point(25); ercd = ext_tsk(); check_ercd(ercd, E_OK); check_point(0); case 2: check_point(32); ercd = ext_tsk(); check_ercd(ercd, E_OK); check_point(0); } check_point(0); }
void btConnect() { while(true) { if (is_master) { shared_memory->bt_con = fdopen(SIO_PORT_SPP_MASTER_TEST_FILENO, "a+"); if (shared_memory->bt_con != NULL) { setbuf(shared_memory->bt_con, NULL); while (!isConnected()) { //cycle_print((char*)"Connecting..."); spp_master_test_connect(slave_address, pin); sleep(1000); } break; } } else { while (!ev3_bluetooth_is_connected()) { //cycle_print((char*)"Waiting for connection..."); sleep(1000); } shared_memory->bt_con = ev3_serial_open_file(EV3_SERIAL_BT); break; } sleep(1000); } //cycle_print((char*)"Connected."); act_tsk(BT_RECV_TASK); }
/* * メインタスク(低優先度) */ void main_task(intptr_t exinf) { syslog_0(LOG_NOTICE, "Performance evaluation program (1)"); init_hist(1, MAX_TIME, histarea1); init_hist(2, MAX_TIME, histarea2); logtask_flush(0U); sus_tsk(LOGTASK); /* システムログタスクの動作を止める */ act_tsk(TASK1); act_tsk(TASK2); rsm_tsk(LOGTASK); /* システムログタスクの動作を再開する */ syslog_0(LOG_NOTICE, "Execution times of wup_tsk -> slp_tsk"); print_hist(1); syslog_0(LOG_NOTICE, "Execution times of slp_tsk -> wup_tsk"); print_hist(2); ext_ker(); }
int nxtrike_init(void) { syslog(LOG_NOTICE, "NXTrike initialization started"); // Configure sensors ev3_sensor_config(gyro_sensor, GYRO_SENSOR); ev3_sensor_config(touch_sensor, TOUCH_SENSOR); ev3_sensor_config(SONIC_SENSOR, ULTRASONIC_SENSOR); ev3_sensor_config(LIGHT_SENSOR, COLOR_SENSOR); // Configure motors ev3_motor_config(LEFT_MOTOR/*left_motor*/, LARGE_MOTOR); ev3_motor_config(RIGHT_MOTOR/*right_motor*/, LARGE_MOTOR); ev3_motor_config(STEER_MOTOR/*steer_motor*/, LARGE_MOTOR); /* スピードとステアリング角度の初期化 */ if(nxtrike_set_light_sensor_active() == NXTRIKE_ERROR){ syslog(LOG_NOTICE, "light sensor is not activated"); } /* モータのエンコーダ値の初期化 */ ev3_motor_reset_counts(STEER_MOTOR); ev3_motor_reset_counts(LEFT_MOTOR); ev3_motor_reset_counts(RIGHT_MOTOR); /* スピードとステアリング角度の初期化 */ nxtrike_set_speed(0); nxtrike_set_steer(0); /* 駆動タスクの起動 */ act_tsk(NXTRIKE_DRIVE_TASK); /* ハンドラの起動 */ assert(false /* not support yet */); act_tsk(NXTRIKE_DRIVE_HDR_TASK); act_tsk(NXTRIKE_TOUCH_SENSOR_HDR_TASK); //sta_cyc(NXTRIKE_DRIVE_HDR); //sta_cyc(NXTRIKE_TOUCH_SENSOR_HDR); syslog(LOG_NOTICE, "NXTrike has beed initialized"); return NXTRIKE_OK; }
// メインタスク void main_task(VP_INT exinf) { serial_ctl_por(TASK_PORTID, (IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV)); syslog(LOG_NOTICE,"Sample program starts (exinf = %d)", exinf); std::atexit(finish); try { for (;;) { for (ID semid = 1; semid <= 5; semid++) p_fork[semid - 1] = new fork(semid); for (ID tskid = 1; tskid <= 5; tskid++) act_tsk(tskid); char c; do { serial_rea_dat(TASK_PORTID, &c, 1); if (c == 'a') std::abort(); } while (c != 'q' && c != 'Q'); for (ID tskid = 1; tskid <= 5; tskid++) { ter_tsk(tskid); } for (ID semid = 1; semid <= 5; semid++) { delete p_fork[semid - 1]; p_fork[semid - 1] = 0; } do { syslog(LOG_NOTICE, "restart? [y|n] "); serial_rea_dat(TASK_PORTID, &c, 1); } while (c != 'y' && c != 'n'); if (c == 'n') break; } syslog(LOG_NOTICE, "multitask test succeeded"); } catch (std::bad_alloc&) { syslog(LOG_NOTICE, "multitask test failed"); } std::exit(0); }
/** %jp{初期化ハンドラ} */ void Sample_Initialize(VP_INT exinf) { T_CMPF cmpf; T_CMBX cmbx; /* %jp{固定長メモリプール生成} */ cmpf.mpfatr = TA_TFIFO; cmpf.blkcnt = 3; cmpf.blksz = sizeof(T_PRINT_MSG); cmpf.mpf = NULL; mpfid = acre_mpf(&cmpf); /* %jp{メールボックス生成} */ cmbx.mbxatr = TA_TFIFO | TA_TFIFO; cmbx.maxmpri = 1; cmbx.mprihd = NULL; mbxid = acre_mbx(&cmbx); /* %jp{タスク起動} */ act_tsk(TSKID_PRINT); act_tsk(TSKID_SAMPLE1); act_tsk(TSKID_SAMPLE2); act_tsk(TSKID_SAMPLE3); act_tsk(TSKID_SAMPLE4); act_tsk(TSKID_SAMPLE5); }
void main_task(intptr_t exinf) { //串口任务初始化 ER_UINT ercd; SVC_PERROR(syslog_msk_log(LOG_UPTO(LOG_NOTICE), LOG_UPTO(LOG_EMERG))); syslog(LOG_NOTICE, "Sample program starts (exinf = %d).", (int_t) exinf); ercd = serial_opn_por(TASK_PORTID); if (ercd < 0 && MERCD(ercd) != E_OBJ) { syslog(LOG_ERROR, "%s (%d) reported by `serial_opn_por'.", itron_strerror(ercd), SERCD(ercd)); } SVC_PERROR(serial_ctl_por(TASK_PORTID, (IOCTL_CRLF | IOCTL_FCSND | IOCTL_FCRCV))); //初始化其它的任务 SVC_PERROR(act_tsk(SPEED_TASK)); SVC_PERROR(act_tsk(FOLLOW_TASK)); SVC_PERROR(act_tsk(SENSORS_TASK)); SVC_PERROR(sta_cyc(CYC_HANDLE)); //结束自己的使命 ext_tsk(); }
static mrb_value mrb_ssp_thread_act(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 = act_tsk(id_num); if (retval != E_OK) { return(mrb_false_value()); } return(mrb_true_value()); }
static mrb_value mrb_mruby_task_active(mrb_state *mrb, mrb_value self) { mrb_int task_id; mrb_int ret = mrb_get_args(mrb, "i", &task_id); act_tsk(task_id); // for debug // char msg[256]; // ev3_lcd_fill_rect(0, 0, EV3_LCD_WIDTH, EV3_LCD_HEIGHT, EV3_LCD_WHITE); // mrb_value val2 = mrb_fixnum_value(task_id); // sprintf(msg, "active taskID=%d", mrb_fixnum(val2)); // ev3_lcd_draw_string(msg, 0, 8); return self; }
void tex_task1(TEXPTN texptn, intptr_t exinf) { ER ercd; check_point(5); check_state(false, false, TIPM_ENAALL, true, true, true); check_point(6); ercd = act_tsk(TASK1); check_ercd(ercd, E_OK); check_point(7); ercd = ext_tsk(); check_ercd(ercd, E_OK); check_point(0); }
void tex_task3(TEXPTN texptn, intptr_t exinf) { ER ercd; /* * システムスタック領域に余裕があることを,拡張サービスコールを使っ * て確認する. * * ユーザタスクにおいて,システムスタック領域が減ることはないはず * だが,カーネルのバグにより増減する可能性はあるため,念のため確 * 認している.ただし,システムスタック領域が増えてしまうバグは, * これでは検出できない(不可解な動作をする). */ ercd = cal_svc(TFN_EXTSVC, 0, 0, 0, 0, 0); check_ercd(ercd, E_OK); #ifdef DEBUG_LOG if (tex_start_count % 50 == 0) { syslog_2(LOG_NOTICE, "%d: sp = %x", tex_start_count, &ercd); } #endif /* DEBUG_LOG */ tex_start_count += 1; if (tex_start_count < UTASK_TEX_COUNT) { switch (texptn) { case 0x0001: ercd = ras_tex(TASK3, 0x0001); check_ercd(ercd, E_OK); break; case 0x0002: ercd = dis_dsp(); check_ercd(ercd, E_OK); ercd = ena_tex(); check_ercd(ercd, E_OK); ercd = act_tsk(TASK4); check_ercd(ercd, E_OK); break; } } }
void task1(intptr_t exinf) { ER ercd; test_start(__FILE__); check_point(1); ercd = ena_tex(); check_ercd(ercd, E_OK); /* * テスト項目(A)のテスト */ tex_start_count = 0U; ercd = ras_tex(TASK1, 0x0001); check_ercd(ercd, E_OK); check_assert(tex_start_count == STASK_TEX_COUNT); check_point(2); /* * テスト項目(B)のテスト */ tex_start_count = 0U; ercd = ras_tex(TASK1, 0x0002); check_ercd(ercd, E_OK); check_assert(tex_start_count == STASK_TEX_COUNT); check_point(3); /* * この後のテストはTASK3で実施 */ ercd = act_tsk(TASK3); check_ercd(ercd, E_OK); ercd = ext_tsk(); check_point(0); }