ファームウエアはもちろん E8a と HEW を用いてブレークポイントの設定や内部データの読み出し、設定、プログラム実行のトレースなどのいわゆる「デバッグ」が可能である。しかしながら、デバッガ/エミュレータを用いたデバッガには次の様な限界が存在している。
通常、上記のような問題を解決するためもっともプリミティブなプロセッサモニターとしてシリアルインタフェースを用いてターミナルへ情報を出力したり、キーボード入力を通じて内部動作へ関与できるようアプリケーションを設計する。今回の試作プロセッサボードにはそのためのシリアルインタフェースが存在しないため、UDP ブロードキャストによってデバッグ情報をファームウエアから自発的に出力できるようにする。
UDP は TCP と異なり通信する相手が定まっていなくてもデータを送受信可能である。今回は、UDP/IP ポート 20000 に対してブロードキャストを送ることによりファームウエアのトレース情報を出力するようにした。また、ホストシステム(Windows/Mac/Linux)で作動する UDP/IP ポート20000 へのデータを表示するソフトウエアを作成し、これを仮想コンソールとして用いる。
ファームウエア内部では、
extern struct udp_pcb * pcb; debug_print( pcb, "format-string", arg1, arg2, ... )
の書式で、任意のタイミングで UDP 上にメッセージを出力できる。
ファームウエアは、いち早く Ethernet ハードウエアを初期化し lwIP プロトコルを通じて UDP/IP が利用できる環境となるよう作られている。しかしながら、lwIP 自身の内部トレースなど lwIP に依存しないデバッグトレースも可能とするため、pcb に 0 を指定することができるよう設計する。