« 今年もありがとうございました | トップページ | C++で究極のビット列操作ライブラリを作成中 »

2024.01.01

謹賀新年。今年はMITOUJTAGが生まれ変わります

あけましておめでとうございます。

今年はJTAGの開発をやり直したいと思っています。

私が未踏ソフトウェアに採択されてMITOUJTAGを開発したのが2003年ですが、あれから20年が経ち、MITOUJTAGのUI/UXは古くさくなってきました。

MITOUJTAGを作っていた西暦2000年ごろは、大きな画面にMDIアプリで小さなウィンドウがたくさん開き、プログラムのメニューにたくさんの項目とボタンが並ぶといったスタイルのソフトが多くありました。そして、一人のエンジニアが1台のPCにインストールして使うということが前提でした。私もそれに憧れてボタンを増やしてきました。

Gcu4c_acaa47tz

しかし今はそういう時代ではありません。ソフトウェアのUIからボタンがどんどん少なくなっていってたくさん並んだボタンやメニューは少なくなってきました。

ソフトウェアも売り切りではなく使った分だけ課金されるし、会社でも学校でも家でもスマホでも同一のデータにアクセスできるようになっています。ソフトのライセンスはPC単位ではなくユーザ単位に変わってきています。

EXEファイルで提供するというのも古くなっていて、セキュリティが厳しい会社では商用ソフトでさえインストールすることができません。そのためWebアプリというインストール不要の形態も出てきています。

多くのソフトでは体験版が用意されていて、使い続けたかったり、欲しいアドオンがあったら課金するようになっています。

ユーザはスマホでどこでも必要な情報にアクセスし、わからないことがあったらSNSで聞いて解決できます。

JTAGバウンダリスキャンについては20年間全く変わっていませんが、組み込みCPUのデバッグに関してはかなり環境が変わってきました。20年前はSHやARM7、MIPS、V850、XScaleという組み込みCPUが主流だったのに対し、今ではARMはCortexに、RISC-V、ESP32などのモダンな32bit CPUが台頭してきています。

この20年の間に起きたソフトウェアの提供形態やライセンス携帯、組み込みCPUを取り巻く環境の変化はこのような感じですが、MITOUJTAGもこの変化に追いつくために、全面的に一から作り直すことにしました。

それが、MITOUJTAGネクスト計画です。まだ構想段階で発表できない部分については一部黒塗りにしています。

Mjnext0101

 

20年前は、JTAGにアクセスするための物理層はプリンタポートか、Cypress+独自プロトコルか、FTDIがかろうじて出てきたころでした。JTAGの物理層を叩くのにも一苦労でした。

今では自分でJTAGケーブルを作らなくてもRaspiやM5Stackなど無線LANを内蔵したガジェットが安く使えるのでこれらを使ってJTAGケーブルを作ってしまうこともできます。USB-JTAGならFTDIのMPSSEが最高すぎます。また、XILINX Virtual Cableもひそかに人気です。OpenOCDのように様々なケーブルにすでに対応しているものをTCP/IP経由でJTAGケーブルがわりにするということもできそうです。

 

Jtaglibrary

つまり、自分でJTAGケーブルを作らなくても身の回りにすでにある何かを使えるようにできればいいのではないかということです。

JTAGで必要になるケーブル接続というのも、身の回りにあるケーブルだけでなくTCP/IP接続を前提として作り、世界中のどこかにあるケーブルにつながるというのを最初から意識して作ることにします。

セキュリティーについては、「ハードウェアにアクセスするJTAGのデータを読み取られたり改竄されたりしない」というだけのセキュリティーではなく、CPUのデバッグやデバイスの書き込みなど、ベンダーが秘匿にしたい情報についてはリバースエンジニアリングが容易な一部のケーブルは使えないようにするといった、開発者から見たセキュリティを最初から考えます。

 

プログラムの開発環境も20年前とは変わってきていて、CやC++以外にもいろいろな選択肢が出てきました。若い人にはC#やPython、JavaScriptが人気です。

まずは、身の回りにある様々な物をJTAGケーブル化し、様々な言語で叩くことができるJTAGライブラリを作ることから始めようかと思います。

応援よろしくお願いします。

 

|

« 今年もありがとうございました | トップページ | C++で究極のビット列操作ライブラリを作成中 »

コメント

コメントを書く



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




« 今年もありがとうございました | トップページ | C++で究極のビット列操作ライブラリを作成中 »