RTLを語る会16に行ってきた
RTLを語る会16に参加してきました。
まず気になったのは、ReGenというコントロール・ステータス・レジスタを自動生成する話。Excelの表からVerilogのコードを出力してくれるのは便利そう。
一番気になったのはひでみさんの、RISC-Vをデバッグする話。
デバッグのコアにはOpenOCDを使い、JTAGケーブルはFT2232で、ユーザインタフェースはVSCodeのプラグインを作ったとのこと。RISC-Vのデバッグ仕様書を読んでデバッグ関係のレジスタをちゃんと実装すれば動きそうですね。これはぜひ試してみたい。
調べてみたらOpenOCDはARM7、ARM9、XScale、Cortex、ARMv7、ARMv8だけではなくRISC-Vにも対応しているようですね。OpenOCDのソースを見てみると、確かにデバッガのコードらしきものがあります。足回りもJ-LinkやSegger、ST-LINK、CMSIS-DAPなどいろいろなUSB-JTAGに対応している。うーむすごい。
一方、MITOUJTAGのCPUデバッグ機能は、ARM7の他は、MIPS、SH2、SH2A、SH4、SH4A、RX62くらいにしか対応してこなかったので、このOpenOCDのCPUデバッグ対応品種は魅力的に映ります。
しかしながら今からARMv8アーキテクチャとかCMSIS-DAPとか勉強するには時間がないので、MITOUJTAGからOpenOCDに接続して、うまいことデバッグ機能を拡張できないかどうかを考えることにします。
つまり、OpenOCDの上位にあるコマンドの受け付ける部分をMITOUJTAGからリモート接続して発行し、OpenOCDの足回り -JTAGケーブルの部分- を追加してMITOUJTAGに制御を戻して操作するというわけです。これならOpenOCDの豊富なCPUデバッグ機能を、MITOUJTAG経由で操作できるようになるはずです。
CPUのデバッガは逆アセンブラを内蔵させるのがとても大変だったのですが、うまいことgdbとも連携し、VSCodeとも連携させれば、RX、SHから最新のARMまですべてに対応したデバッガができるんじゃないかなと妄想しています。来年時間があれば試してみたい。
| 固定リンク


コメント
RgGenの紹介、ありがとうございます!
質問や機能追加のリクエスト等などは大歓迎なので、なにかありましたらお知らせください!!
投稿: 石谷#RgGen作者 | 2019.11.22 00:50