RXマイコンで動くCMSIS-DAPを開発しています
この土日の間に、RXマイコンで動くCMSIS-DAPを開発していました。CMSIS-DAPというのは、ARMのCortexシリーズ用のUSB-JTAG/SWDデバッガのことです。ARM標準の規格なので、今後、様々な統合開発環境がサポートしてくれるでしょう。
このデバッガを作る目的は、トラ技のLPC810マイコンをデバッグする環境を整えるためです。3月号にはCMSIS-DAPの「トラ技ARMライタ」基板が付属しますが、それを待ちきれない人も多いと思います。
そこで、みなさまが既にお持ちと思われるRXマイコンボード※を使ってCMSIS-DAPを実現しようとしているわけです。
※ たとえば、特電のRaXinoや秋月のRX621ボード。Interface付録のRX62N基板。マルツで売っている青いボード。もちろんGR-SAKURAも
開発はGR-SAKURAとRXduinoライブラリを使って行っています。GR-SAKURAを使うのはマスストレージに見える機能が便利だからです。
GR-SAKURAのUSB機能はUSB仮想COMポートに固定されてしまっているので、ライブラリに手を加えて、HIDを喋れるようにしています。
作ったRXマイコンのファームウェアをGR-SAKURAに書き込んで、GR-SAKURAにLPC810をSWDで接続します。GR-SAKURAにつながっている緑の基板はRS232Cのレベルコンバータです。RS232CからCMSIS-DAPのパケット解析結果を吐き出します。
MDK-ARMからCMSIS-DAPの設定を開くと・・・
CMSIS-DAPのパケットアナライザのようなものができました。
最低限の機能を実装しただけですが、MDK-ARMのデバッガ設定画面の中のCMSIS-DAPの設定で、このように「RX-CMSIS-DAP」という名前のアダプタが検出されました。
0x0BC11477と、IDCODEが読み出せています。
次は、デバッグができるように、CMSIS-DAPの残りの機能を作っていきたいと思います。
さて、CMSIS-DAPというと、mbedやNXPさんの評価ボードで動作させることが多いと思うのですが、それらはNXPさんのアプリケーションノートAN11321を参考にして作られています。AN11321をビルドするには、MDK-ARMのProfessional版が必要になりますが、Professional版はとても高価です。また、AN11321はライセンス的にも自由にできないようです。
そういうわけで、RXマイコンを使ってゼロからフルスクラッチでCMSIS-DAPのプロトコルを実装することにしました。もちろん、AN11321のコードは一切見ずにやっています。
| 固定リンク
コメント