(toppers-users 1911) H8S、非タスクコンテキストでの割込みについて質問

二村誠示 snimura @ icrl.mew.co.jp
2005年 2月 9日 (水) 13:13:23 JST


$B$O$8$a$^$7$F!#(B
$B>>2<EE9)$NFsB<$H?=$7$^$9!#(B

$B8=:_!"(BH8S2145$B!J(BROM256k, RAM8k$B!K$K(BJSP$B%+!<%M%k(B1.4.1$B$r0\?"$7!"(B
$BF0:n$N3NG'$r$7$F$*$j$^$9!#(B

$B3+H/4D6-$G$9$,!"(BWindowsXP-SP1$B$G(BCygwin(gcc 3.3.3)$B$K$F(B
$B%3%s%Q%$%k!&%j%s%/$r9T$$!"(BMyICE$B$G%(%_%e%l!<%H$7$F$$$^$9!#(B

$B0\?"$N$?$a$N:n6H$H$7$F$O!"(B
$B!&(B2145$BMQ$K3F<o%l%8%9%?%"%I%l%9EyJQ99(B
$B!&%?%$%^=hM}$r(BTPU$B$K$h$k=hM}$+$i(BTMR$B$K$h$k=hM}$KJQ99(B
$B!&3d9~$_@)8f%b!<%I#1$GF0:n$5$;$k$h$&!"(BEXR$B$K$h$k3d9~$_6X;_!&5v2D$+$i(B
CCR$B$K$h$k3d9~$_6X;_!&5v2D$KJQ99!#(Bchg_ipm$B%5%]!<%H$;$:!#(B

$B$J$I$J$I$G$9!#(B

$BG[I[$5$l$F$$$k%5%s%W%k%?%9%/!J(Bsample1$B!K$b @ 5>o$KF0:n$7!"%7%9%F%`%3!<%k$b(B
$B @ 5>o$K=hM}$5$l$F$$$^$7$?!#$h$&$K8+$($^$7$?!#(B
$B$,!"%5%s%W%k%?%9%/$K$h$kF0:n3NG'Cf!"<!$N%(%i!<%a%C%;!<%8$,=PNO$5$l!"(B
$BF0:n$,%9%H%C%W$9$k!J(Bkernel_abort()$B$N(Bwhile(1)$B%k!<%W$KF~$k!K8=>]$,H/@8(B
$B$9$k$3$H$,$"$j$^$7$?!#(B

---------------- $B%7%j%"%k=PNO$5$l$k%(%i!<%a%C%;!<%8(B ------------------
E_CTX reported by `isig_tim()' in line 63 of `../systask/timer.c'.
----------------------------------------------------------------------

$B$"$kDxEYD9$$4V!J(B5$B!A(B10$BJ,$[$I(B?$B!KF0:n$rB3$1$k$H5/$-$k;~$d!"$o$j$H$9$0$K!J(B1$BJ,$[$I(B?$B!K(B
$B5/$-$k>l9g$J$I!"MM!9$G$7$?!#(B
$B$,!"%H%l!<%9$7$FD4$Y$F$_$k$H!"%7%j%"%k3d9~$_$K$h$j3d9~$_6X;_=hM}$,$5$l$?(B
$BD>8e!J(BCCR$B$N(BI,UI$B%S%C%H(B1$B$K$7$?D>8e!K$K%?%$%^3d9~$_$,H/@8$7$F$7$^$$!"(B
$B%?%$%^3d9~$_$NCf$N(Bisig_tim()$B$NCf$N(BCHECK_INTCTX_UNL()$B$K$F3d9~$_6X;_>uBV$N$?$a%(%i!<(B
$B$H$J$C$F$$$^$7$?!#(B

----------------------- My-ICE$B$K$h$k%H%l!<%97k2L(B --------------------------
$	sys_manage.c:0169	t_lock_cpu();	
		$B!&(B			/* $B%7%j%"%k3d9~$_Cf$N=hM}(B */
		$B!&(B
$	cpu_config.h:0154	disint();
		$B!&(B
		$B!&(B
$	cpu_insn.h:0121		set_ccr( (IPM) (current_ccr() | CCR_I_UI) );
		$B!&(B	/* CCR$B$N(BI,UI$B%S%C%H$rN)$F$k!#(BCCR_I_UI=0xc0 */
		$B!&(B	/* $B3d9~$_@)8f%b!<%I#1$N$?$a$KJQ99$7$F$$$k(B */
		$B!&(B
$	cpu_insn.h:0065		Asm( "ldc.b	%0l, ccr" ::"r"(ccr) );
	*	MOV.B	@(FFFF:16,ER6),R2L
	*	LDC.B	R2L,CCR		/* $B$3$3$G3d9~$_6X;_(B */
$	cpu_insn.h:0066:	}	
	*	ADDS.L	#4,ER7		/* $B$3$3$^$G$O(Bt_lock_cpu() */
	*	PUSH.L	ER0		/* $B$3$3$G%?%$%^3d9~$_=hM}3+;O(B */
	*	STC.B	CCR,R0L
		$B!&(B
		$B!&(B
$      timer_handler:
$	timer.c:0061{
$	timer.c:0062:	hw_timer_int_clear();
		$B!&(B
		$B!&(B
$	time_event.c:0339:	CHECK_INTCTX_UNL();	
		$B!&(B		/* $B$3$N=hM}$G!"(BCPU$B%m%C%/>uBV$N$?$a%(%i!<(B */
-------------------------------------------------------------------------------

$B3NG'$7$?8B$j$G$O!"Kh2s>e5-$N%Q%?!<%s$G$7$?!#(B

H8S2145$B$N%O!<%I%&%'%"%^%K%e%"%k$r8+$k$H!"(B
$B!&(BLDC$BL?Na$O<B9TD>8e$K3d9~$_MW5a$r<u$1IU$1$J$$!#(B
$B!&(BLDC$BL?Na$K$h$j#I%S%C%H$^$?$O#U#I%S%C%H$r @ _Dj$7$?>l9g!"L?Na<B9T=*N;$N(B2$B%9%F!<%H8e$K(B
$B?7$7$$CM$,M-8z$K$J$k!#(B
$B$H$"$j$^$7$?$,!"%H%l!<%9$N7k2L>e5-$N$h$&$K$J$C$F$*$j!"%?%$%^3d$j9~$_$,H/@8$7$F(B
$B$$$k$h$&$G$9!#(B

$B2r7hJ}K!$H$7$F!"(B
$B-!(BCHECK_INTCTX_UNL();$B$N%A%'%C%/$rJQ99$7$FB?=E3d9~$_$@$C$?>l9g$O=hM}$rH4$1$k!#(B
$B-"(BCHECK_INTCTX_UNL();$B$N%A%'%C%/$r9T$o$J$$!#(B
$B$N$I$A$i$+$G$O$J$$$+$J!"$H;W$C$F$$$^$9!#-!$NJ}$,NI$$$H$O;W$$$^$9$,!"(B
$B8=:_$O-"$NJ}K!$G3NG'$7!"=hM}$,;_$^$k$3$H$O$J$/$J$C$F$$$^$9!#(B

$B$&$^$/@bL@$G$-$?$+$I$&$+!"3'$5$s$KJ,$+$C$F$$$?$@$1$?$+$I$&$+!"J,$+$j$^$;$s$,!"(B
$B0J>e$N8=>]$,5/$-$F$$$^$9!#(B

$B:#2s$N<ALd$G$9$,!"$3$N2r7hJ}K!$GNI$$$N$+$I$&$+!"$465<($7$FD:$-$?$$$H(B
$B;W$C$F$$$^$9!#(B

$B%^%$%3%s$r?($j;O$a$F$^$@F|$b @ u$/!"JY6/Cf$N?H$N$?$a$K @ bL@ITB-$NItJ,$b(B
$B$"$k$+$H;W$$$^$9$,!"3'$5$s$N$*NO$r$*<Z$j$G$-$l$P$H;W$$$^$9!#(B
$B$I$&$>59$7$/$*4j$$CW$7$^$9!#(B