Foros: 開発 (Thread #32619)

チケット #29146 リセット後の多重Supervisor状態からの脱出 (2012-08-05 19:15 by suikan #64953)

パッチのレビューをお願いします。

チケット #29146 「リセット後の多重Supervisor状態からの脱出」の対策コードをjspリポジトリのdevelopブランチにプッシュしました。diffをチケットに張り付けています。
http://sourceforge.jp/ticket/browse.php?group_id=1240&tid=29146

これは古くからある問題です。以前より、「gdbでオブジェクトをロードした場合に、リセットが正しく効かない」という現象で認識されています。リセットが正しく効かない場合、IPENDの割り込みがクリアされないため、最終的に正しい動作優先順位(IVG15)になりません。結果的に異常動作します。

対策コードはIPENDに処理途中の割り込み状態が残っている(多重割り込み状態)場合に、割り込みが空になるまでrtiを繰り返して正しい状態を確保します。ただし、このコードはリセットをするわけではありませんので、.gdbinitなどを使ってSWRSTによるシステム・リセットが必要です。

Responder al #64953×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Entrar