(toppers-users 2223) Re: JSPカーネルのdispatch_rについて

酔漢 suikan7 @ yahoo.co.jp
2005年 12月 12日 (月) 01:26:58 JST


高田先生

なるほど、タスク起動時だけ別処理をさせるのに必要ですね。

わかりました。お答え頂きありがとうございます。

酔漢


TAKADA Hiroaki wrote:

>酔漢さま
>
>  
>
>>m68k実装のcpu_support.Sを読むと、dispatch()関数内部では、schedtsk->pcか
>>ら値を取り出してきて、そのアドレスにジャンプしています。つまり、これが新
>>しくスケジュールされるタスクの実行再開アドレスです。
>>
>>しかし、runtskのコンテキストを保存するときには、かならずdispatch_rが実行
>>再開アドレスとしてruntsk->pcに保存されています。
>>
>>そうすると、tskctx->pcフィールドは不要で、タスク切り替え時には常に
>>dispatch_rにジャンプすれば済むように思いますが、いかがでしょうか。
>>    
>>
>
>tskctx->pc フィールドには、次の3種類の値が設定される可能性があります。
>
>(1) dispatch_r(cpu_support.S:dispatch の4行下で設定)
>
>(2) ret_int_r(cpu_support.S:ret_exc の9行下で設定)
>
>(3) activate_r(cpu_context.h:activate_context で設定)
>
>よって、このフィールドは必要です。ただし、メモリを切り詰めるなら、設定
>される値が3通りしかないわけですから、32ビットは必要なく、2ビットあれば
>良いことになります。ただし、実行速度は落ちるでしょう。
>
>高田広章
>名古屋大学
>
>
>  
>


-- 
酔漢
Blackfin 空挺団           http://adsp2191.hp.infoseek.co.jp/
TOPPERS/JSP for Blackfin  http://sourceforge.jp/projects/toppersjsp4bf/
Blog                      http://blackfin.g.hatena.ne.jp/suikan/

--------------------------------------
STOP HIV/AIDS.
Yahoo! JAPAN Redribbon Campaign 2005
http://pr.mail.yahoo.co.jp/redribbon/