(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 した値で使用
  しないといけないと思われます。

私のソースの見方が甘いのかも知れませんが、皆さまのご意見を伺いたいと
思います。宜しくお願いします。