[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

(itron-club 1656) Re: 割り込み 処理の実装方法



きしだです

遅い反応で申し訳なし。

pai_ __at__ dj.pdx.ne.jp wrote:
>  M32102は、EITが発生した時点で割り込みスタックに切り替わるようになっ
> ています。しかし、タスクのコンテキストをタスクスタックに積むように作っ
> た場合、割り込みハンドラ内でタスクスイッチすると、割り込みハンドラから
> リターンするときに、割り込みスタックからタスクスタックにコンテキストを
> 積みなおす必要があります。私は、ネストしていない最初の割り込みについて
> は、タスクスタックにタスクのコンテキストを積むようにしました。また、シ
> ステムコール呼び出し時にも、割り込みハンドラと同じ形でコンテキストを積
> むようにしました。これにより、タスクスイッチはユーザスタックの切り替え
> のみで済むようになりましたが、これは一般的なやりかたなのでしょうか。あ
> るいは、割り込みハンドラの先頭で割り込みスタックに切り替わるCPUに適した

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

一般的かどうかは、色々ソースを見た事がないといえませんので言及できません
が、私は他のCPUで、ほぼ同じ事をやった(やっていた)事があります。

件の方法では、コンテキストの積み方を同じにしているので、扱いが統一できる
ので、シンプルな実装になりませんでしょうか?
# レジスタウインドウとか色々、機能を持っている場合はまた話は変わるで
# しょうが、割り込みスタックのみの場合、こんな感じでしょう。

あ、あと、割り込みハンドラ外でスタックに積みなおす事が出来れば、ちょっと
割り込み遅延を短くする事に貢献できるかもしれません。

ではでは