(toppers-users 767) 割込みハンドラ出口処理について
Kenji Karita
kkarita @ mac.com
2003年 3月 11日 (火) 14:23:31 JST
初めまして、かりた と申します。
現在、JSP-13 を参考に uITRON v4 の勉強をしております。
その中でどうしてもすっき解決しない処があり皆さまの意見を
伺いたく投稿します。
1.M68K, CPU 依存部、割込みハンドラ出口処理
(cpu_support.s : ret_int)
この処理で、(runtask == NULL) の場合(実行中のタスクがない)で、
schedtsk に何らかのタスクが設定されてこの処理が実行された時、
dispatcher に飛ぶ前 NULL をポインタとしたエリアにアクセスする事
になりませんでしょうか? 特に、0番地当たりがROMエリアに割当て
られている場合CPU例外が起きてしまうのではないでしょうか?
design.txt を読むと「アイドルタスクを使用しない方針」と書かれてい
ますが、この方法だとアイドルタスクが存在しないといけないような気
がします。
2.最低優先順位の番号について
標準で16が最低優先度です。ready_queue 配列は確かに16個の配列を
用意してありますが、この ready_queue 配列のアクセス時、TCB に保存
してある priority 値をダイレクトにインデックス値としている為、
最低優先順位のタスクを作ると ready_queue[16] というアクセスが発生
してしまう。インデックスとして(priority - 1)を使用しないといけない
のではないでしょうか?
また、ビットマップ作成マクロ(PRIMAP_BIT)も同様に -1 した値で使用
しないといけないと思われます。
私のソースの見方が甘いのかも知れませんが、皆さまのご意見を伺いたいと
思います。宜しくお願いします。