(toppers-users 355) Re: Toppers CPU ロック状態について

Shigemitu Takata takata @ kyoto-sr.co.jp
2002年 1月 29日 (火) 22:52:00 JST


  こんばんは。
  京都ソフトウェアリサーチ高田です。

  何度も申し訳ありません、再度確認させてください。

> > 割込みの出入口処理とCPUロック状態に関しては、多分ほとんどの依存部がCPUロック状態
> > だと思います。少なくとも、V850は入口/出口の一部が割込み禁止で動作し、
> > かつCPUロックかどうかを割込み禁止ビットで見ているため、事実上CPUロック状態です

  ここに関して、各 CPU のソースをチェックしたのですが、CPU の割り込みマ
スクビットで CPU ロック状態を検査しているけれど、割り込み許可ビット(MIPS 
では CP0 $12 IEc にあたり、SH3 では ステータスレジスタの BL にあたると思
います ) では判定していない実装があります。

  割り込みビットがクリアされて、割り込みが不許可であっても CPU ロック状
  態であるとは限らない。        ^^^^^^^^^^^^^^^^

  というのであっているでしょうか。uITRON 4.0 の仕様ではこのように読み取
れるのですが、どうでしょうか。

  また、Toppers のドキュメント user.txt において、
----------------------------------------------------------------------
2.5 割込みハンドラ

JSPカーネルでは,割込みハンドラの機能とそれを定義する静的API(DEF_INH)
をサポートしており,割込みサービスルーチンの機能とそれを追加する静的
API(ATT_ISR)はサポートしていない.

割込みハンドラのC言語による記述形式は次の通りとする.

        void interrupt_handler(void)
        {
                割込みハンドラ本体
        }

JSPカーネルでは,C言語で記述された割込みハンドラが呼ばれる時点で,CPU
ロック解除状態になっている.また,割込みハンドラからリターンするには,
C言語の関数から単にリターンすればよい.
----------------------------------------------------------------------

  とあります。

  ですので、 Toppers の仕様では、
***********************************************************************
  割り込みハンドラ入り口での CPU ロック状態は未定義(実装依存)だが、割
り込みハンドラが実行される時点では CPU ロックは解除状態でなければならな
い。
***********************************************************************
  と考えるのですが、よろしいのでしょうか。


  以上、よろしくお願い致します。

/*
Shigemitu Takata <takata @ kyoto-sr.co.jp>
http://www.kyoto-sr.co.jp/
*/