(toppers-users 755) Re: calltex の呼び出しコンテキストについて

koizumi yoshiyuki.koizumi @ toshiba.co.jp
2003年 2月 17日 (月) 12:11:07 JST


koisanです。

 結局どう考えるのかが問題です。

Suikan wrote:

> 早速のご返事、ありがとうございます。しかし、依然としてはっきりと理解でき
> ていません。
> 申し訳ありませんが、もう少しお教えください。
> 
> Hiroaki TAKADA wrote:
> 
>> m68k の実装では、ret_int の頭で実行状態を強制的にタスクコンテキストに
>> 切り換えています(m68k ではタスクコンテキスト=マスタモード)。よって、
>> タスク例外処理ルーチンはタスクコンテキストで実行されます。他のプロセッ
>> 

** Cut quoted 10 lines by the mail filter. **

私はMIPSで移植しました。MIPSはレジスタが多いので、割り込み時では割り込み
ハンドラの実行に必要なレジスタを保存し、戻り時にディスパッチ要求があれ
ば、全レジスタを保存するよう、2段階でレジスタ保存を行うようにしました。
そこで、タスク実行中なら、この処理は良いのですが、IDLE中はタスクではなの
で、割り込み戻り時にタスク実行中の判断があいまいになるケースが出ました。
(出来る限りC言語で書きたかったので、ディスパッチやはアセンブラとCの2箇
所に分かれてしまっています。ここに無理があったような気がしています)

 タスクか非タスクか、ロックかアンロックか、割り込みレベルの変更処理、等
ではHWによっては中間的な時間帯が出来てしまうので、これを意識していない
と、ドツボにはまりますね。私も苦労しました。ここが綺麗に出来ないと公開も
できないし、自分で移植したものは、まだまだつらい事態に落ちそうです。この
辺、具体的な例で説明したものが欲しいところです。一人でやっていると結構き
ついですね。

> 
> 
> この場合のように、タスクに物理的に割り込みがかかっていてもITORNに登録さ
> れたユーザーの割り込みハンドラを実行していない場合(つまり、ITRON自身の
> コードを実行している場合)、便宜的にタスクコンテキストと考えてもいいので
> しょう
> か。

考え方だけの問題だけだと思います。

> 
> 
> よろしくお願いします。
> 
> Suikan
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/

** Cut quoted 3 lines by the mail filter. **