NICE-SPC970 モニタプログラム Ver 1.53 Mitec Systems,Inc. 2001/04/05 このディスクにはNICE-SPC970のモニタプログラムが収めされています。 ※このDISKはプレリリース版のNICE-SPC970(PCカードスロット有り、 イーサネットI/F無し)専用です。 +----------------+--------------+------------+-----------------------------+ | 内容 | ディレクトリ | ファイル | 内容 | +----------------+--------------+------------+-----------------------------+ |NICE-SPC970 | \TRNS |N970TR.BAT | モニタ転送バッチファイル | |モニタプログラム| | | | +----------------+--------------+------------+-----------------------------+ | その他 | \ |README.TXT | 本ドキュメント | +----------------+--------------+------------+-----------------------------+ ■モニタプログラムの転送について ・転送はマニュアルをよく読んでから行ってください。 ・CPUプローブ、ラムトレーサII、アナログトレースユニットは接続せず、 NICE単体で行なってください。 ・電源ケーブルをしっかりと接続し、転送中に電源が切れないようにして ください。 ■ステップ実行の注意点について NICE-SPC970とSPC950/SPC970ピギー/エバチップの組み合わせにおいて、 ステップ実行で不具合が出たため、ハード及びソフトにて対策を行っています。 状況が複雑となっておりますので混乱を避けるために以下にまとめます。 本資料では、お使いのICEに最新版のモニタプログラム(Ver.1.20以降)と 最新版のデバッガソフト(SVD970 Ver.0.94.05以降/NSD970 Ver.1.00.02以降) の組み合わせでお使いになっていることを前提に記述されています。 ※モニタプログラムのVer.1.40からKD設定有りが起動時のデフォルトへ変更と なりました。 1.プレリリース版(PCカードスロット有り、イーサネットI/F無し) プレリリース版では、改修の有無によりはENMI対策済み品と未対策品があります。 ENMI未対策品 NO.980008〜990009, NO.980012〜980013, NO.990016 ・ステップ実行の動作状況 CXP921000 CXP971000 SPC950コア SPC970コア --------------------------------------------- ENMI未対策品 KD設定無し ◎ ◎ KNE設定は無効 ENMI未対策品 KD設定有り ○ ○デフォルト KNE設定は無効 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ENMI対策済品 KD設定無し ◎ ◎ KNE設定無し ENMI対策済品 KD設定有り ○ ○デフォルト KNE設定無し ENMI対策済品 KD設定無し ◎ × KNE設定有り ENMI対策済品 KD設定有り ○ ○ KNE設定有り 2.正式量産版(PCカードスロット無し、イーサネットI/F有り) 正式量産版では、全ての機種でENMI対策が施されています。 ・ステップ実行の動作状況 CXP921000 CXP971000 SPC950コア SPC970コア --------------------------------------------- KD設定無し ◎ ◎(17MHzまで) KNE設定無し ×(17MHz以上) KD設定有り ○ ○デフォルト KNE設定無し KD設定無し ◎ × KNE設定有り KD設定有り ○ ○ KNE設定有り ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ◎ 正常動作(推奨) ○ 正常動作 ただしソフト的にPSWのIフラグをマスクしてのステップ 実行となります。実使用上は問題ありません。 実行した後のレジスタやメモリ内容はICEのモニタプログラムが 正しく補正します。 注意点) PSWをメモリへ書込む命令ではIフラグは"0"で実行されます。 ただしステップ実行後、ICEのモニタプログラムがメモリ内容を補正 しています。実行内容をヒストリメモリで見た場合には本来の動きと 異なる点に注意して下さい。 × PSWのIフラグが"1"で何らかの割込みがかかっている状態でステップ 実行すると1命令を実行してから割込みルーチンに飛んでしまう。 割込みルーチンからREITで戻ってから更にステップ実行すると、また、 1命令実行してから割込みルーチンに飛んでしまう。本来のルーチンの ステップ実行ができないわけではないが毎回割込み処理ルーチンが 割り込んでしまい実使用に耐えない。 割込みがかかっていない状態やPSWのIフラグが"0"の時には、正常に ステップ実行できる。 この症状は、1命令ステップ実行する時にICEが出力しているENMIよりも 先にマスカブル割込みが受け付けられてしまうために発生します。 ただし、CPUの修正で1命令は、必ず実行してから割込み受付処理をする ため症状2と異なっています。 本症状は、以前のバージョンのモニタプログラムとENMI対策済みの プレリリース版及び、正式量産版で発生します。 Ver.1.20のモニタプログラムとデバッガソフトの組み合わせお使いに なる事で回避されます。 (起動時には[K]や[KN]コマンドの設定は必要ありません) [K]コマンドでステップ実行時の割込みを禁止に設定する事でも実使用上 の問題は解決しますがモニタプログラムとデバッガを最新の物にアップ デートしてお使いになる方を推奨します。 ------------------------------------------------------------------------- ・ENMI対策品について ICEのハードウェアを改修してCPUがSPC970コアの場合のみ、 ステップ実行時のENMIを1クロック遅らせて出力できる様にしたものです。 正式量産版は、全ての製品にENMI対策回路を組み込み済みです。 ・KD設定について [K]コマンドは、ステップ実行時の割込みを許可するかどうかを設定しま す。[KD]により、割込みを禁止に設定した場合、ICEのモニタプログラム がソフト的にPSWのIフラグをマスクします。ただし単にマスクしただけ 問題があるのでPSWのIフラグをアクセスする命令でも矛盾が生じない様 にICEのモニタプログラムが実行する命令を判別してケアしています。 デフォルトでは、[K]コマンドの設定は、割込み禁止になっています。 ・KNE設定について ピギー/エバチップがCXP971000 初期である場合は、[KNE]コマンドにより ENMI信号を1クロック遅らせる事ができるようになっています。 本コマンドは、SPC950コアのマイコンでは無効です。また、 CXP971000 現行チップでは、[KN]コマンドの実行は必要ありません。 [KNE]によるENMIディレイ設定は、デバッガ起動後1度だけ実行すればOKです。 ------------------------------------------------------------------------ [K]及び[KN]コマンドの仕様 ------------------------------------------------------------------------ =[K]コマンドの仕様======================= K ステップ実行時の割込み制御 形式1 K [CR] ・・・・ 設定状態の表示 形式2 K [E|D] [CR] ・・・・ 割込み許可/禁止の設定 ステップ実行時の割込み E 割込み許可 D 割込み禁止 解説 [T]コマンドや[P]コマンドでステップ実行を行う際、割込みを許可す るか、禁止するかを設定します。 タイマ割込みなどを使用していて、割込みマスタ許可フラグが "1" の時に ステップ実行すると、CPUの種類によっては割込みルーチンばかりを実行し てしまう様な時に使用すると有効です。 本コマンドでは、ステップ実行をする際、デバッガ内部でソフト的にCPUの 割込みマスタ許可フラグを操作することで、割込み禁止状態でのステップ実 行を実現しています。よって、CPUの割込みマスタ許可フラグでマスクでき ない割込み(NMI等)の禁止はできません。なお、本コマンドの設定は、 ユーザーの割込みマスタ許可フラグに影響しません。 [P]コマンドによるCALL先サブルーチンのリアルタイム実行では、本コマ ンドの設定は無効です。 NICE-SPC970起動時は、デフォルトで割込み禁止に設定されます。 例 ]k ……… 設定状態の表示 TRACE INTERRUPT : DISABLE ……… ステップ実行時は割込み禁止 ]kd ……… 割込み許可に設定 ]k TRACE INTERRUPT : ENABLE ……… ステップ実行時は割込み許可 ] =[KN]コマンドの仕様====================== KN ステップ実行時のENMIディレイ制御 形式1 KN [CR] ・・・・ 設定状態の表示 形式2 KN [E|D] [CR] ・・・・ ディレイ許可/禁止の設定 ステップ実行時のENMIディレイ E ディレイ許可 D ディレイ禁止(起動時のデフォルト) 解説 [T]コマンドや[P]コマンドでステップ実行を行う際、ICEがCPUに対して かけるENMI信号の1クロックディレイを許可するか、禁止するかを設定します。 本コマンドは、ICE起動後1度設定すればそれ以後ICEの電源OFFやリセットをす るまで、その設定が保持されます。 CXP971000の初期出荷チップでステップ実行が正常にできない場合は、本コマ ンドでENMIディレイを許可に設定してお使い下さい。CXP971000の2ndロット 以降では、起動時の設定のままで問題ありません。 本コマンドでディレイ許可にしてもSPC950コアのマイコンでは無効です。 SPC970コアのマイコンでのみENMI信号タイミングが制御されます。 NICE-SPC970起動時は、デフォルトでディレイ禁止に設定されます。 例 ]kn ……… 設定状態の表示 STEP ENMI DELAY : DISABLE ……… ステップ実行時のENMIディレイは禁止 ]kne ……… ディレイ許可に設定 ]kn STEP ENMI DELAY : ENABLE ……… ステップ実行時のENMIディレイは許可 ] ■モニタプログラム変更履歴 Ver 1.00 1999年4月19日 正式出荷版 Ver 1.10 1999年4月23日 ・[K]コマンドをサポート。STEP実行の問題点をソフト的に回避。 Ver 1.11 1999年4月26日 ・プレリリース版のICEでDIP SW3番をON(モニタプログラムの転送)で起動した時に LEDが2個点灯しない不具合を修正。 Ver 1.20 1999年5月24日 ・CXP971000 2ndチップで割込みがかかっていてIフラグが"1"の状態でステップ 実行した場合、1命令ステップ実行した後にマスカブル割込みのアクノリッヂ サイクルを実行してしまうため、ENMIディレイ無しをデフォルトとして[KN] コマンドを追加。 Ver 1.21 1999年7月19日 ・ブレーク中の[RE]コマンド実行時に限り、リセットベクタからCP:PCを取得する ように変更。 Ver 1.30 1999年9月29日 ・ヒストリメモリの高速表示に対応。 Ver 1.40 1999年10月25日 ・リアルタイムトレース拡張機能に対応。(ハードウェアのアップデートが必要) 1)マルチトレーストリガ設定 2)マルチプルデュアルトリガモード 3)トリガマスク機能 4)リアルタイムトレース停止機能 ・[K]コマンドのデフォルトを禁止に変更。 ・ブレーク時にソフトウェアループカウンタが内部的に1つ多くカウントされて ブレーク要因が場合によっては正しく表示されない場合がある不具合を修正。 ・C言語の浮動小数点演算ランタイムルーチンが正しくステップ実行できない 不具合を修正。 Ver 1.41 1999年10月28日 ・エミュレーション中のターゲット電源OFF→ON時にブレークせず内部的に リセットベクタから再実行するように修正。 ・バスモニタで電源OFF/RESET/SLEEPの表示をサポート。 (RESETの表示にはハードウェアのアップデートが必要) Ver 1.42 2000年1月07日 ・SVD970 Ver.2でヒストリメモリの先頭のトリガが検索できなかった不具合を修正 Ver.1.43 2000年9月6日 ・SVD970で"Load Last Debug Information"が有効の状態でプログラムをロードした後、 ブレーク無効化してからHBP1にブレークポイントを設定してブレーク有効化すると、 ループカウント値が内部的に65536回になってしまう不具合を修正 ・HBP1〜4やソフトウェアブレークポイントのループカウント値をFFFFH等の大きな値 に設定した場合、リアルタイム実行時にバスモニタが正しく表示されず、また、 その時に、ブレーク無効化([BN]コマンド)するとCan't Breakでブレーク表示され、 バスモニタの表示がおかしくなったり、キーボードブレークができなくなる不具合 を修正 Ver.1.44 2000年9月28日 ・SVD970を使用してICE電源ON、ターゲット電源OFFの状態からターゲット電源ONした 場合に、エミュレーションCPUエラーが表示される場合があるのを修正 Ver.1.45 2001年2月15日 ・ターゲットのリセット回路が230mSEC以上の時定数となっている場合、 SVD970起動時にエミュレーションCPUエラーとなってしまう問題に対処 (リセット回路の時定数 最大1.2秒までに対応) ・ICE起動時に送信するブートステータスの不具合を修正 Ver.1.50 2001年3月6日 ・ヒストリメモリのマルチプルフレームリードでRAMトレース対応コマンドを追加 ・ブレークON/OFFのホールド機能追加 ・エミュレーションCPUのリセット検出ステータス追加 ・実行中のメモリライト機能追加(書込み時に数mSECプログラムが停止します) ・実行中のブレークポイント設定に対応(設定時に数mSECプログラムが停止します) ・実行中の実行時間計測カウンタのリードをサポート ・プリアンブル付き通信プロトコルに対応 Ver.1.51 2001年3月15日 ・ターゲットを接続しない状態でSVD970が起動できない不具合を修正 ・エミュレーションCPUが動作していない場合のタイムアウト処理(5秒)が正しく 動作するように修正 ・ブレーク中にノイズ等によりエミュレーションCPUが意図しないコマンドを実行 しないように対策 Ver.1.53 2001年4月5日 ・ブレーク中のターゲットリセットでエミュレーション実行を開始してしまう問題 への対策 ※リアルタイムトレース拡張機能はプレリリース版では使用できません