[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
(itron-club 1656) Re:
割り込み
処理の実装方法
- To: itron-club __at__ ertl.jp (itron-club ML)
- From: mkishida <mkishida __at__ fecsi.furuno.co.jp>
- Date: Tue, 25 Nov 2003 20:53:37 +0900
きしだです
遅い反応で申し訳なし。
pai_ __at__ dj.pdx.ne.jp wrote:
> M32102は、EITが発生した時点で割り込みスタックに切り替わるようになっ
> ています。しかし、タスクのコンテキストをタスクスタックに積むように作っ
> た場合、割り込みハンドラ内でタスクスイッチすると、割り込みハンドラから
> リターンするときに、割り込みスタックからタスクスタックにコンテキストを
> 積みなおす必要があります。私は、ネストしていない最初の割り込みについて
> は、タスクスタックにタスクのコンテキストを積むようにしました。また、シ
> ステムコール呼び出し時にも、割り込みハンドラと同じ形でコンテキストを積
> むようにしました。これにより、タスクスイッチはユーザスタックの切り替え
> のみで済むようになりましたが、これは一般的なやりかたなのでしょうか。あ
> るいは、割り込みハンドラの先頭で割り込みスタックに切り替わるCPUに適した
** Cut quoted 1 lines by the mail filter. **
一般的かどうかは、色々ソースを見た事がないといえませんので言及できません
が、私は他のCPUで、ほぼ同じ事をやった(やっていた)事があります。
件の方法では、コンテキストの積み方を同じにしているので、扱いが統一できる
ので、シンプルな実装になりませんでしょうか?
# レジスタウインドウとか色々、機能を持っている場合はまた話は変わるで
# しょうが、割り込みスタックのみの場合、こんな感じでしょう。
あ、あと、割り込みハンドラ外でスタックに積みなおす事が出来れば、ちょっと
割り込み遅延を短くする事に貢献できるかもしれません。
ではでは