(toppers-users 238) Re: TOPPERS の割り込み時のスイッチングに関して

Shinya Honda honda @ ertl.ics.tut.ac.jp
2001年 7月 28日 (土) 00:41:05 JST


豊橋技術科学大学の本田です.

- ryosuke.takeuchi @ nts.ricoh.co.jp-san writes ---
> 
> 
> 68LC040用のTOPPERSについて、質問があります。
> ・割り込み時のタスクの切り替えについてですが。
>cpu_support.Sのdispatcher_1の部分で、schedtskがない(0)場合、runtskを
>ゼロにして、dispatch_2に移り、割り込みを解放します。そこで、割り込みが
>発生し、割り込みルーチンでタスクの起動が発生した場合、schedtskに次の
>TCBがセットされ、runtskはゼロのままで、ret_intに入ります。ここでruntsk
>とschedtskは違う値なので、タスクスタックと実行再開番地を保存しますが。
>これはa0レジスタ(runtsk)相対に行います。このときのa0レジスタの値はゼ
>ロになっています。ここでは、runtskがゼロの場合は、何もせず、割り込みを
>抜けるべきではないのでしょうか?

dispatcher_2で割込みを待つ間はcpu_support.Sのコメントにあるように割込
みモードにします.そのため,この状態の時に発生した割込みハンドラ内でタ
スク起動が発生した場合でも割込みハンドラ終了時にret_int()が呼ばれず
(cpu_config.hの257行目),dispatcher_2に戻ります.

詳しくは,TOPPERS/JSPの./doc/config.txtの(4)タスクディスパッチャに書か
れています.

-------------------------------------------
豊橋技術科学大学 情報工学専攻 2年 高田研究室   
E-mail  honda @ ertl.ics.tut.ac.jp               
WWW     http://www.ertl.ics.tut.ac.jp/~honda
本田 晋也