いろいろ試す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からそちらに乗り換えられるん
ですけどね…

20200615追:ようやくwin10に完全対応しました!!!!!!

20231008追:
ESP版は本家OpenOCDに統合しました。
●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