いろいろ試す66

先月修正して公開したコードに細かい修正ずっと加えてたら
あっという間に1か月過ぎてしまいました…


●Picoscope7のソフトアップデート!ようやく安定
…か?

7になってからあちこちが不安定になって使いづらくなってしまった
Picoscopeのソフトですが7.1.50にバージョンアップしております。
バージョンアップのたびに修正項目に"improvements to stability"
の文字列が出てきますが一抹の不安を胸にインストールしました・・。


orz
固まった…
マウスのホイールで時間軸カチャカチャ変えてただけなのに…
ねむいさんはよくいらん事してシステムとかプログラムとか人間を
機能不全にさせてしまう能力があるようです。
でもそれがバグ出しの役に立ちません。いらん事してるからね。

で、無駄だとは思ったけどPicoscopeに英文で発生条件の詳細を
添えてバグレポート提出してみたのですが、意外にも向こうでも
再現確認取れたようで対策も2点教えてくれました。
対策1. 'File' menu ->
  'Startup settings' ->
  'Load factory default settings'を実行

➡全然ダメ

対策2.C:¥Users¥%USERNAME%¥AppData¥Local¥Pico Technology
 の中にあるファイル全部削除
 
➡完全とはいきませんがなんでか不具合の発生確率がだいぶ
 下がりました…もうこれでいいや…
 
てわけで会社で使用しているPicoscpe7のソフトは次のバージョン
アップまでこれで乗り切ることにしました…次に期待…


どうでもいいですが便利なダウンロート直リンクがクリック
したら404にリダイレクトしやがるようになりましたファ〇ック!



●LAP-Cのソフトが神対応!有償のハードウエアトリガが無料に!!
かつて秋月電子でも販売され、改造もできたりして一世を風靡した
台湾製のLAP-Cというロジックアナライザがありました。

そして2025年になった今もソフトはアップデートされており、Win11にも
対応したV3.14.14が新たにリリースされたのですがななんと!
有償だったハードウエアトリガが無料解放となりました!!
ハードウエアトリガはプロトコルアナライザ機能のひとつで特定のデータ
でトリガをかけることができる超便利機能です!!

販売初期はプロトコルアナライザすらも有償だったのですがハードウエア
トリガが無料開放になったこれはまさに神ですね…!
ちなみにねむいさんこのロジアナ(LAP-C162000)を持ってるのですが
残念ながら私の頭が悪く正直ほとんど使いこなせていません。
Picoscopeのデータ解析機能でほとんど用が足りちゃうから…

でも持ち腐れてるのもよくないので使用記は一つ書いてみたいです。


●TEAMGroupのS.M.A.R.T.が見れるMicroSDカード



S.M.A.R.T.(以下SMART)が見られる非産業用MicroSD第二弾です。

最近のUHS-1では当たり前になった100MByte/Sec越えの転送と
寿命がわかるSMART機能を搭載したカードです。
最近は2TByteモデルも追加されています。

ねむいさんも256GByteモデルのTTCS256GIA2V3003購入してとりあえず
メーカーが提供しているWindowsの寿命判定ツールとやらで寿命を見て
みようとしましたが…


死ーん…
寿命判定用のツールがなんだかちょっと作りが悪いです。
ねむいさんの環境ではUSB接続のHDDを複数つないでいるですが
その状態だとツールからドライブは認識してるのになんでか
SMARTのデータが捕れません。エラーも出ません。


ほかのUSBドライブを全部外してこのMicroSDつないだUSBカード
リーダーだけにしたら認識して寿命が出てきました。

ねむいさんの興味はマイコンからCMD56発行してSMARTのデータを
引っ張ってこれるかどうかなのです。
Teamにストレート問合せしたら最速でストレートに意思の疎通を
断られたのでねむいさん独自に調べた情報を当ぶろぐ上にて全公開
させていただきます!!!!

結論から言うとCMD56の手順はDELKINとまったく同じとなります。
以下の手順でSMART情報を得ます。
1.まずCMD56コマンドの引数に0x00000010を取り、
 512バイトのデータ(ゼロフィルでよい)を書き込みます。
2.その後CMD56コマンドの引数に0x00000021を取り、
 512バイトのSMARTデータを読み出します。

CMD56のデータのとり方としてはいわゆるDELKIN系で、
書き込み(プリロード)->読み出しの二段階アクセスが必要な
タイプとなります。

取得したSMARTの生データをこちらに置いておきます。

生のSMARTデータが得られたのは良いのですが寿命を示すデータの
オフセットはどこなのか!?今度はそれを調べることになります。

Windows上のツールからSMARTデータを引っ張ってくる仕組みが
わかればSMARTデータのハイジャックも可能かもしれないので
まずはWindows上のツールからどういうデータのやり取りしてるか
調べてみました。

ひとまずWireSharkでUSBバルク転送のデータのやり取り調べたら
大体何やってるかが分かりました。
このWindowsツールではTranscendみたいにCMD56パススルーする
特殊な方法は使っていません。ていうかできません。
実際やっていたのDELKINのものと同じく特定のアドレスに特定の
順番で読み書きしてSMARTデータを得る"開けゴマ"方式のやつです。

ねむいさんが買った256GBの奴は実際の流れはこんな感じでした。
1 ReadCapacity
2 ReadCapacity
3 ReadCapacity
4 READ LBA:0x00000100 0データ
5 READ LBA:0x00001000 0データ
6 READ LBA:0x00000300 0データ
7 READ LBA:0x00000800 0データ
8 READ LBA:0x00000500 0データ
9 READ LBA:0x00000600 0データ
10 READ LBA:0x00005380 0データ
11 READ LBA:0x00007374 SMARTデータ(モロ)
12 ReadCapacity ☜ここで通常モードに戻ってる

最後らへんのLBA:0x00007374にアクセスしたときに何の暗号化も
していないCMD56の時と全く同じSMARTの生データを得ています。
DELKINはこの辺しっかりしていてデータに何らかの暗号化をしている
らしく、読み出しだけじゃなく書き込みも交えており2025年の今も
何やってるか不明です(代わりにCMD56があるので問題ないですが)。

さて生データのやり取りしてるのならSMARTデータのハイジャック
簡単です。STM32F7のUSB-MSCプログラムを引っ張り出してきてツールが
LBA:0x00007374を読みだそうとしたらこちらが用意した偽SMARTデータを
お出しするプログラムを仕込めばよいわけです。簡単ですね〜
そして寿命を示すアドレスオフセットも大体当たりつけておりまして
ツールは99を返しているので0x63って値がある192番目のをわざと値を
変えて試してみました…

はい勝利。偽SMARTデータは78にしましたがドンピシャですね。
あとはねむいさんのおもちゃです。

100%超える値ぶっこんで見たら100%上限にしてるみたいですね。

0にしたらこんなんになりました。

というわけでかなりガバガバだったおかげでこのカードでいろいろ遊べて
だいぶ溜飲が下がりましたのでだいぶ満足してしまいました。
でもSMART捕りたいだけなら安くて入手しやすいTranscendのやつ買えば
断然良いので無理してTeamのこのカード使う意味はないです。


ちなみに転送速度100MByte/Sec越えはDDR200の規格外規格の手順を使って
ない独自規格のようで、DDR200対応のカードリーダーでも100MByte越えは
できませんでした。Team製の専用カードリーダーが必要みたいです。
汎用性考えるとやっぱり無理して買う必要もないかなと思います。


●話は変わるが開発環境構築の記事更新の件どうなったの?
ギ ブ ア ッ プ
CodeLiteをGDBのGUIとしてなんとか使いこなそうとしましたがSIGINT発行による
HALTがどうしても出来ず、それ以前に安定してステップ実行することすらできず
諦めました…orz

しかし…
orzしたねむいさんの目と鼻の先には救済がありました。
マルチプラットフォームIDEのCode::Blocksです!!!!
最小構成のサイズは100MB以下と小さくGDBのGUIとして使うならこれで十分です。


runしてる最中にいつでもHALTがかかる!
IOVIEWも直感的で見やすい!なにより直接変更ができる!
GDB-Insightでできたこととほぼ同じ!

というわけでCodeBlocksに乗り換えてデバッグ環境を構築し、ねむいさんの
いつものではSTM32F4,STM32F7,STM32H7,STM32H5ですでにCodeBlocks環境に
乗り換えています!

Win10では安定してデバッグできるのが確認できたのでWin11環境へとアップ
デートして同じように動作確認が取れたら今度こそ開発環境の構築手順の
更新ができそうです…!!!

Comments

Post a Comment








Go to top of page