(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/
*/