コード例 #1
0
void
alarm1_handler(intptr_t exinf)
{
	ER_UINT	ercd;
	SYSTIM	systim;

	switch (++alarm1_count) {
	case 1:
		check_point(36);
		ercd = set_tim(1LLU << 32);
		check_ercd(ercd, E_CTX);

		ercd = get_tim(&systim);
		check_ercd(ercd, E_CTX);

		return;

		check_point(0);

	case 2:
		check_point(74);
		ercd = adj_tim(+1000000);
		check_ercd(ercd, E_OK);

		check_point(76);
		ercd = adj_tim(+1000000);
		check_ercd(ercd, E_OBJ);

		check_point(78);
		return;

		check_point(0);

	default:
		check_point(0);
	}
	check_point(0);
}
コード例 #2
0
ファイル: simt_systim1.c プロジェクト: ev3rt-git/ev3rt-hrp3
void
task1(intptr_t exinf)
{
	ER_UINT	ercd;

	check_point(2);
	check_assert(fch_hrt() == 10U);

	simtim_advance(90U);

	check_assert(fch_hrt() == 100U);

	check_point(3);
	ercd = sta_alm(ALM1, 100U);
	check_ercd(ercd, E_OK);

	check_point(5);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(9);
	simtim_advance(79U);

	check_assert(fch_hrt() == 300U);

	check_point(10);
	ercd = sta_alm(ALM1, 100U);
	check_ercd(ercd, E_OK);

	check_point(12);
	simtim_advance(10U);

	check_assert(fch_hrt() == 310U);

	check_point(13);
	ercd = sta_alm(ALM2, 100U);
	check_ercd(ercd, E_OK);

	check_point(14);
	simtim_advance(10U);

	check_assert(fch_hrt() == 320U);

	check_point(15);
	ercd = sta_alm(ALM3, 110U);
	check_ercd(ercd, E_OK);

	check_point(16);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(24);
	simtim_advance(59U);

	check_assert(fch_hrt() == 500U);

	check_point(25);
	ercd = sta_alm(ALM1, 100U);
	check_ercd(ercd, E_OK);

	check_point(27);
	simtim_advance(10U);

	check_assert(fch_hrt() == 510U);

	check_point(28);
	ercd = sta_alm(ALM2, 110U);
	check_ercd(ercd, E_OK);

	check_point(29);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(34);
	simtim_advance(69U);

	check_assert(fch_hrt() == 700U);

	check_point(35);
	ercd = sta_alm(ALM1, 100U);
	check_ercd(ercd, E_OK);

	check_point(37);
	simtim_advance(10U);

	check_assert(fch_hrt() == 710U);

	check_point(38);
	ercd = sta_alm(ALM2, 100U);
	check_ercd(ercd, E_OK);

	check_point(39);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(47);
	simtim_advance(60U);

	check_assert(fch_hrt() == 900U);

	check_point(48);
	ercd = sta_alm(ALM1, 100U);
	check_ercd(ercd, E_OK);

	check_point(50);
	simtim_advance(10U);

	check_assert(fch_hrt() == 910U);

	check_point(51);
	ercd = sta_alm(ALM2, 50U);
	check_ercd(ercd, E_OK);

	check_point(53);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(59);
	simtim_advance(89U);

	check_assert(fch_hrt() == 1100U);

	check_point(60);
	ercd = sta_alm(ALM1, 10U);
	check_ercd(ercd, E_OK);

	check_point(62);
	simtim_add(20U);

	check_assert(fch_hrt() == 1120U);

	check_point(63);
	ercd = sta_alm(ALM2, 100U);
	check_ercd(ercd, E_OK);

	check_point(64);
	simtim_advance(10U);

	check_point(70);
	check_assert(fch_hrt() == 1160U);

	check_point(71);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_point(75);
	target_raise_hrt_int();

	check_point(77);
	simtim_advance(59U);

	check_assert(fch_hrt() == 1300U);

	check_point(78);
	ercd = sta_alm(ALM1, 100U);
	check_ercd(ercd, E_OK);

	check_point(80);
	ercd = adj_tim(200);
	check_ercd(ercd, E_OK);

	check_point(84);
	ercd = sta_alm(ALM1, TMAX_RELTIM);
	check_ercd(ercd, E_OK);

	check_point(86);
	ercd = adj_tim(-200);
	check_ercd(ercd, E_OK);

	check_point(88);
	ercd = slp_tsk();
	check_ercd(ercd, E_OK);

	check_finish(93);
	check_point(0);
}
コード例 #3
0
void
task1(intptr_t exinf)
{
	ER_UINT	ercd;
	T_RALM	ralm;
	SYSTIM	systim;

	check_point(3);
	ercd = loc_cpu();
	check_ercd(ercd, E_OK);

	ercd = set_tim(1000000LLU);
	check_ercd(ercd, E_CTX);

	ercd = get_tim(&systim);
	check_ercd(ercd, E_CTX);

	ercd = adj_tim(100);
	check_ercd(ercd, E_CTX);

	ercd = unl_cpu();
	check_ercd(ercd, E_OK);

	check_point(4);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(6);
	check_assert(systim == 40U - 10U);

	ercd = set_tim(2LLU << 32);
	check_ercd(ercd, E_OK);

	check_point(8);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(10);
	check_assert(systim == (2LLU << 32) + 10U);

	check_point(11);
	target_raise_hrt_int(1U);

	ercd = tslp_tsk(TMAX_RELTIM);
	check_ercd(ercd, E_TMOUT);

	check_point(17);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(19);
	check_assert(systim == (2LLU << 32) + 4000000050U);

	check_point(20);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(22);
	check_assert(systim == (3LLU << 32) + 50U);

	ercd = adj_tim(-1000001);
	check_ercd(ercd, E_PAR);

	ercd = adj_tim(+1000001);
	check_ercd(ercd, E_PAR);

	ercd = sta_alm(ALM1, 2000000U);
	check_ercd(ercd, E_OK);

	check_point(25);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(27);
	check_assert(systim == (3LLU << 32) + 80U);

	ercd = adj_tim(+1000000);
	check_ercd(ercd, E_OK);

	check_point(30);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(32);
	check_assert(systim == (3LLU << 32) + 1000000U + 100U);

	ercd = ref_alm(ALM1, &ralm);
	check_ercd(ercd, E_OK);

	check_point(34);
	check_assert(ralm.lefttim == 999960U);

	target_raise_hrt_int(0U);

	check_point(39);
	ercd = sta_alm(ALM1, 2000000U);
	check_ercd(ercd, E_OK);

	check_point(42);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(44);
	check_assert(systim == (3LLU << 32) + 1000000U + 1000110U);

	ercd = adj_tim(-1000000);
	check_ercd(ercd, E_OK);

	check_point(47);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(49);
	check_assert(systim == (3LLU << 32) + 1000000U + 1000120U);

	ercd = ref_alm(ALM1, &ralm);
	check_ercd(ercd, E_OK);

	check_assert(ralm.lefttim == 2999960U);

	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(52);
	check_assert(systim == (3LLU << 32) + 1000000U + 1000120U);

	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(54);
	check_assert(systim == (3LLU << 32) + 2000160U);

	ercd = adj_tim(-1000000);
	check_ercd(ercd, E_OK);

	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(58);
	check_assert(systim == (3LLU << 32) + 2000170U);

	ercd = set_tim(4LLU << 32);
	check_ercd(ercd, E_OK);

	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(61);
	check_assert(systim == (4LLU << 32));

	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(63);
	check_assert(systim == (4LLU << 32));

	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(65);
	check_assert(systim == (4LLU << 32) - 999980U + 1000020U);

	ercd = sta_alm(ALM1, 1000U);
	check_ercd(ercd, E_OK);

	check_point(70);
	ercd = sta_alm(ALM2, 1000U);
	check_ercd(ercd, E_OK);

	check_point(72);
	target_raise_hrt_int(0U);

	check_point(82);
	target_raise_hrt_int(0U);

	check_point(85);
	ercd = set_tim(5LLU << 32);
	check_ercd(ercd, E_OK);

	check_point(87);
	ercd = adj_tim(200);
	check_ercd(ercd, E_OK);

	check_point(90);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(92);
	check_assert(systim == (5LLU << 32) + 200U + 20U);

	check_point(93);
	ercd = set_tim(6LLU << 32);
	check_ercd(ercd, E_OK);

	check_point(95);
	ercd = adj_tim(-200);
	check_ercd(ercd, E_OK);

	check_point(98);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(100);
	check_assert(systim == (6LLU << 32) + 10U);

	ercd = adj_tim(-1000000);
	check_ercd(ercd, E_OK);

	check_point(103);
	ercd = adj_tim(-1000000);
	check_ercd(ercd, E_OBJ);

	check_point(105);
	ercd = adj_tim(+1000000);
	check_ercd(ercd, E_OK);

	check_point(108);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(110);
	check_assert(systim == (6LLU << 32) + 10U);

	check_point(111);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(113);
	check_assert(systim == (6LLU << 32) - 200U + 260U);

	ercd = adj_tim(0);
	check_ercd(ercd, E_OK);

	check_point(116);
	ercd = get_tim(&systim);
	check_ercd(ercd, E_OK);

	check_point(118);
	check_assert(systim == (6LLU << 32) - 200U + 280U);

	check_finish(119);
	check_point(0);
}