« みえたジェイ特別版を無料で差し上げます! | トップページ | DIP28タイプのSpartan-6やRX基板を考えてみた »

2011.01.22

ルネサスRXマイコン用JTAG ICEを更新

拙作のルネサスRX用JTAG ICEを更新しました。
バージョンは1.81βになります。

主な更新点は、
① ステップ実行のたびに割り込みがかかってしまう問題があったのを修正
② リセット信号をつながなくても、動くようにした
③ デバッガ接続時に、リセットベクタで停止するようにした。
④ ELFファイルをダウンロードする際、ゼロクリアすべき領域をゼロクリアするようにした。
⑤ ELFファイルをダウンロードした後、自動的にPSWをゼロクリアするようにした。
です。
いままでのバージョン(1.8)では、ステップ実行する間に割り込みを受け付けるという問題がありました。ステップ実行で指定された命令を実行するよりも先に割り込み処理ルーチンを実行するみたいで、奇妙な動作をしていました。
例えば、シリアル通信モジュール(SCI)の送信エンプティで割り込みをかけてしまうと、ステップ実行するたびに割り込みがかかってしまいます。なぜかというと、送信エンプティ割り込みルーチンは、普通はユーザメモリ上に確保したバッファに送信すべきデータがあれば、1文字送信するということを行いますが、1文字送信するとまた次の割り込みがスタンバイになってしまって・・という現象が起きていました。この問題を修正しました。

次に、リセット信号をつながなくてもよくなりました。JTAGの5本の信号(TCK、TDI、TMS、TDO、TRST)だけつなげば、JTAG ICEの機能をフルに使えます。リセット信号をつなぎにくいボードでもちゃんと動作します。
また、JTAG ICEとマイコンの間の通信が確立したときには、リセット後に飛ぶべき番地に飛んで、そこで停止して待つようにしました。
そのため、起動後には次のような画面になって止まります。

Rxice181

この状態から普通にスタートしてもよいし、ステップ実行してもよいというわけです。

それから、RAM上で動くプログラムをELF形式でダウンロードした場合、いままではローダがゼロクリアすべきだった領域をゼロクリアしていませんでした。この問題を修正しました。
また、プログラムをダウンロード後、PSWを自動でクリアするようにしました。普通のプログラムを実行している最中はユーザモードで動きますが、ブートコードはスーパーバイザモードで動かさなければなスタックポインタが正常に設定できません。
スーパーバイザモードに切り替えるにはPSWを0にすればよいので、プログラムのダウンロードとともに自動でクリアするようにしました。これで、ダウンロード後そのまま実行開始してもちゃんと初期化されて、正しくブートできるようになりました。

スーパーマルチJTAG ICEのダウンロードはこちらから行えます。
詳しい使い方などはこちらの記事をご覧下さい。

それから、オリジナルのRX62Nボードですが、こんな感じで設計しています。
Rx62n_brd_1

基板の大きさは76mm×56mm。クレジットカードくらいのサイズです。

BGA176ピンのRXマイコンを中心に、SDRAM(16~128MBytes)、LAN、USB、コネクタを配置しています。
左右のコネクタはペリフェラルやI/O。下のコネクタはEXDMAC用です。
USBは2つポートがあって、1つはUSBシリアル兼USB-JTAGです。78Kマイコンを使って実現します。
もうひとつのUSBは、RXマイコンにつながるUSBで、HostやFunctionになるものです。

小さな箱に入れて省電力サーバにできればいいなと思います。
来週中にはもう少し設計を詰めていきたいと思います。

|

« みえたジェイ特別版を無料で差し上げます! | トップページ | DIP28タイプのSpartan-6やRX基板を考えてみた »

コメント

コメントを書く



(ウェブ上には掲載しません)




« みえたジェイ特別版を無料で差し上げます! | トップページ | DIP28タイプのSpartan-6やRX基板を考えてみた »