CPLD+SIMMを使ってUSBプロトコルの解析を!
VHDLを速習! XC95144XL+16MB・SIMMを使ってUSBプロトコルアナライザを作ってしまいました!
主目的は差し迫った事情からUSBプロトコルの解析をすることだったのですが、その手段として選んだのがコレ!
[第52回]
●ハードウェアによるウォームブート(3)
前回の続きを書く予定だったのですが、その時間が取れませんでした。
その代わりに、CPU RESETによってウォームブートするように変更したプログラムを整理して、デバッグのためにごちゃごちゃ表示していたところをなくしてすっきりさせましたので、その画面をお見せすることにいたします。
[第50回]では2つの画面に分けてお見せしましたが今回はそれを1つの画面でお見せします。
画面の3分の2ほど下がったところで
A>
で入力待ちしているときにCPU RESETスイッチを押し上げました。
この画面ではすぐにCPU RESETが受け付けられて cpu reset detected と表示されたように見えますが、実はちょっとプログラム上の理由がありまして、キー入力待ちのときには、CPU RESETを入力しても見かけ上はなんの反応もありません(しかしこのときシステムの内部ではCPU RESETが受け付けられています)。
何かキーを入力すると上の画像のように cpu reset detected と表示されてウォームブートが行なわれます。
CPU RESETによるウォームブートはシステムのキー入力待ちのときだけではなく、ユーザープログラムの実行中でも受け付けられます。
下はMBASICを起動して、STARTREKをロードし、run直前の画像です。
STARTREKの実行開始直後にCPU RESETを入力しました。
ウォームブート後はSTARTREKプログラムには戻りません。
またMBASICにも戻りません。
CP/Mモードの場合にはCP/Mにエントリしてそこでキー入力待ちになります。
吉崎様から提示されておりました仕様書ではCPU RESETによるウォームブートはCP/M互換DOSのみの仕様でしたが、ことのついでですので、BASICモードでも機能するように作りました。
下はCP/MモードでZB3コマンドを入力してZB3モードにエントリしてそこでウォームブートの動作をさせてみたときの画像です。
画面の中ほどで r.(RUNの省略形)を入力してBASICプログラムを実行させておいて、そこでCPU RESETを入力しました。
さきほどのSTARTREKプログラムと同じようにCPU RESETはただちに受け付けられ、ウォームブートが実行されてBASICモードにエントリしました。
この時点ではBASICプログラムは見かけ上はクリアされていますが h.(HELPコマンドの省略形)を入力することでプログラムを復活させることができます。
. (LISTコマンドの省略形)を入力してプログラムリストを表示させたあと、
p.a(PRINT Aの省略形)と入力する(ダイレクトモードの実行)ことで、変数Aの値を表示させました。
CPU RESET直前の値がそのまま保持されています。
CPLD+SIMMを使ってUSBプロトコルの解析を![第52回]
2014.5.19upload
前へ
次へ
ホームページトップへ戻る