いろいろ試す40

オイオイなんかコロナウイルスのせいで色々ものごっつ酷くなってますね
皆様におかれましても外から帰ったら手洗いうがいの徹底は忘れずに…


●InsightがWindows10でまともに動作しなくなっていた
ビルド190xになってとうとうGDB-Insightがまともに動作しなくなってしまいました。
具体的に言うと"TargetSelection"のところで何か設定やって抜けようとした瞬間に
固まりやがりますorz互換性オプションいじっても一切駄目orz

もちろんこの操作を行わないとOpenOCDと接続できないため、こちらで紹介した手順
が全く役立たずになってしまうのですが…

実はこれ逃げ道があります。InsightはGDBと一体化しているのでプログラム起動時に
リモート接続でOpenOCDが開いたポートに接続しに行くようにコマンドラインの引数を
与えてやればよいのです。
具体的に示すと

arm-none-eabi-insight ¥
--eval-command="target remote localhost:3333" ¥
--eval-command="tbreak main" --nx ¥
main.elf


これでおしまいっ!
しかしながら私の以前の手順ではmakeからOpenOCDとInsightの同時実行をするため
Windowsのcmd.exe経由でInsightを起動していたせいで"--eval-command=hoge"が
Insightにちゃんと渡らなかったので(ほかの方法を知らなかったので)一旦Insightの
TargetSelectionの項目を開いて設定をやっておりました。

そしてつい最近にmakeの-2jオプションを指定すればmakeからOpenOCDとInsightを平行
実行できることに気づいてmakefileも修正しております。

こんな感じです。


make debugを実行したらこんな感じで接続できます。
これでWindows10環境下でもInsightを使い倒すことができます。あと20年は優に
戦えそうですね。

あとひとつ気をつけなければならないのがレジスタウインドウを参照しようとしたら
Insightが落ちる問題は解決しておりませんので(XPのころからあった)レジスタを参照
したい場合はコンソールウインドウから"mon reg"コマンドで代用してください。

↑これが禁じ手です。

↑ちょっと面倒ですが"mon reg"で。


そんなわけで私が紹介している開発環境のデバッグ編の内容も上記の変更に即するよう
大幅に変更する予定です。Win10でも安定して使える軽量なGDBフロントエンド出てくれたら
Insightからそちらに乗り換えられるんですけどね〜


●ESP32版OpenOCDはぢめました
2017年初頭に早々に飽きてほっぽっていたESP32ですが思うことあり再び舞い戻ることに
なりました。まずはESP32(xtensa)に対応したOpenOCDのビルドからですが当たり前ですが
通常のOpenOCDのビルドと全く変わらない感覚でビルドできてます☆

一応軽く接続できるところまでは確認しましたのでOpenOCDバイナリに同梱しております。
名前は安直にopenocd-esp32.exeです。いずれはxtensaのサポートもOpenOCDのマスターに
取り込まれるでしょうからそれまでのつなぎで通常版、ESP32対応版バイナリの二つセットで
公開とさせていただきます。

ちなみにわざわざこんなことやった理由がESP32版OpenOCDはデバッグだけではなく
外付けSPI-FLASHの書き換えもできるようになっていた
からで2017年の頃は書き込み
方法がUART経由しかなくなんでJTAG使えるのにSPIフラッシュ書けないんだYOと憤慨
してたのですが2018年以降くらいにJTAG書き込みができるようになったのをいまさら
気づいたからというわけです。

具体的な書き込み検証に関しては次回以降に譲りますがとりあえずブツはすでに公開して
居りますので
どしどし使ってください!
ひとまずESP32の開発環境もう一回総ざらいですね〜…すっかり浦島状態です。

Go to top of page