いろいろ試す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第二弾です。
EXPERT S.M.A.R.T. Micro SDXC メモリーカードですって〜
なんというか9年くらい周回遅れですnゲフンゲフフン
最近のUHS-1では当たり前になった100MByte/Sec越えの転送と
寿命がわかるSMART機能を搭載したカードです。
最近は2TByteモデルも追加されています。
ねむいさんも256GByteモデルのTTCS256GIA2V3003購入してとりあえず
メーカーが提供しているWindowsの寿命判定ツールとやらで寿命を見て
みようとしましたが…
死ーん…
寿命判定用のツールがなんだかちょっと作りが悪いです。
ねむいさんの環境ではUSB接続のHDDを複数つないでいるですが
その状態だとツールからドライブは認識してるのになんでか
SMARTのデータが捕れません。エラーも出ません。
ほかのUSBドライブを全部外してこのMicroSDつないだUSBカード
リーダーだけにしたら認識して寿命が出てきました。
使えねぇですよぅ…
ねむいさんの興味はマイコンからCMD56発行してSMARTのデータを
引っ張ってこれるかどうかなのです。
TeamGroupに英文でストレートに問合せしたら5時間くらいの過去最高速で
ストレートに意思の疎通を断られたので、
ねむいさん独自に調べたこのカードに関するあれこれの
情報を当ぶろぐ上にて全公開させていただきます!!!!
結論から言うと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パススルーする
特殊な方法は使っていません。
ていうか汎用のカードリーダーではTranscendのような技はできません。
実際やっていたの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製の専用カードリーダーが必要みたいです。
汎用性考えるとやっぱり無理して買う必要もないかなと思います。
話は前後しますがSTM32H7のいつものでカード情報を引っ張っておきます。
FatFs module test terminal for STM32H747XIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Mar 11 2025
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read at 21935 kB/sec.
>fs 0
FAT type = exFAT
Bytes/Cluster = 262144
Number of FATs = 1
Root DIR entries = 0
Sectors/FAT = 32768
Number of clusters = 945816
Volume start (lba) = 65536
FAT start (lba) = 98304
DIR start (lba,clustor) = 4
Data start (lba) = 131072
Volume name is TTCS256GIA2
Volume S/N is 1DF1-C03B
...rc=5 FR_NO_PATH
>ds 0
rc=0
Drive size: 484388864 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
CSD:
00000000 40 0E 00 32 DB 59 00 07 37 CB 7F 80 0A 40 00 89 @..2.Y..7....@..
CID:
00000000 45 2D 42 53 74 6F 72 61 07 7B 77 45 B9 71 85 F3 E-BStora.{wE.q..
Parsing SD CID Register
Manufacturer ID :0x45
OEM/Application ID :-B
Product Name :Stora
Product HwRev :0
Product SwRev :7
Serial Number :0x7B7745B9
DateCode.Month :5
DateCode.Year :2024
OCR:
00000000 C1 FF 80 00 ....
SD Status:
00000000 80 00 00 00 08 00 00 00 04 00 90 00 10 05 39 1E ..............9.
00000010 00 08 00 00 00 02 0F 00 03 00 00 00 00 00 00 00 ................
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
SCR:
00000000 02 05 84 8F 33 33 30 39 ....3309
Parsing SCR
SD Spec Version :2
SD Spec Version 3 :1
SD Spec Version 4 :1
SD Spec Version X :2
SD Security :0
SD Bus Width :5
SD_Spec V6.xx!
Detected as Not SD Card!
Available UHS-I Mode.
Available UHS Speed Class U3.
Available SD Speed Class 10.
Available Video Speed Class 30.
Available Application Performance Class2, A2 Card.
A2 CommandQueue Depth 2 Supported
A2 Cache Supported.
A2 Host-Initiated Maintenance Supported.
A2 Card-Initiated Maintenance Supported.
>
このカードのコントローラはSA3309というコントローラで
動かしてるようですね…DDR200対応のはずなのに通常の
DDR200移行の手順をさせなくしてるのほんとダメ
20250911追:
なんと9月に入ってHardDiskSentinelというSMARTを解析できる
ツールがTeamのこのカードに対応しちゃいました!!!
これはアツい!!アツすぎる…!!!!遅れてきた夏が始まる!!

とりあえず見てみました…!ダメダメな公式ツールからでは見えなかった
総書き込みセクタ数やPowerCycleCountなどの値が反映してるじゃあーりま
せんか!!!!なんという価値のある資料だッ…!!!そして…

ンアーッ!!TeamGroupの懐が(ガバガバすぎて)広すぎるよもぉおおん!!!!
…すみません表示してる数字に特に深い意味はないですが…
"smartデータハイジャッキング"でこんなお遊びできちゃいます♪
そんなわけでねむいさんが解析したEXPERT S.M.A.R.T. Micro SDXC256GBの
SMARTデータに情報を追記したものを改めて上げました…
Teamの中の人から刺客が来たら
20250911追 終
●話は変わるが開発環境構築の記事更新の件どうなったの?
ギ ブ ア ッ プ
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環境へとアップ
デートして同じように動作確認が取れたら今度こそ開発環境の構築手順の
更新ができそうです…!!!
免責・連絡先は↑のリンクを
↓SNSもやってます↓
powered by まめわざ- ARM/STM32 (118)
- OpenOCD (27)
- ARM/NxP (34)
- ARM/Cypress (5)
- ARM/Others (3)
- ARM/Raspi (1)
- AVR (13)
- FPGA (4)
- GPS/GNSS (20)
- MISC (86)
- STM8 (2)
- Wirelessなアレ (16)
- おきぱ (1)
- ブラウザベンチマーク (29)
- 日本の自然歩道 (27)
- GNSSモジュールを試用する21 -SAM-M10Qが壊れた…!?と思ったら直せた(おまけあり)-
⇒ Kenji Arai (05/29) - GNSSモジュールを試用する21 -SAM-M10Qが壊れた…!?と思ったら直せた(おまけあり)-
⇒ ねむい (05/26) - GNSSモジュールを試用する21 -SAM-M10Qが壊れた…!?と思ったら直せた(おまけあり)-
⇒ Kenji Arai (05/24) - 中部北陸自然歩道を往く -砺波平野の県境を駆け抜ける!-
⇒ ねむい (12/18) - 中部北陸自然歩道を往く -砺波平野の県境を駆け抜ける!-
⇒ ひかわ (12/15) - STM32U0はぢめました
⇒ ねむい (08/07) - STM32U0はぢめました
⇒ ひかわ (07/28) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ ねむい (05/17) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ どじょりん (05/16) - STM32H5を使ってみる3 -待ち受ける初見殺しの罠たち-
⇒ どじょりん (05/16)
- August 2025 (1)
- July 2025 (1)
- June 2025 (1)
- May 2025 (1)
- April 2025 (1)
- March 2025 (1)
- February 2025 (1)
- January 2025 (1)
- December 2024 (2)
- November 2024 (1)
- October 2024 (1)
- September 2024 (1)
- August 2024 (1)
- July 2024 (1)
- June 2024 (1)
- May 2024 (1)
- April 2024 (1)
- March 2024 (1)
- February 2024 (2)
- January 2024 (1)
- December 2023 (4)
- November 2023 (2)
- October 2023 (2)
- September 2023 (1)
- August 2023 (2)
- July 2023 (1)
- June 2023 (2)
- May 2023 (3)
- April 2023 (1)
- March 2023 (1)
- February 2023 (1)
- January 2023 (1)
- December 2022 (2)
- November 2022 (1)
- October 2022 (1)
- September 2022 (1)
- August 2022 (1)
- July 2022 (1)
- June 2022 (1)
- May 2022 (1)
- April 2022 (1)
- March 2022 (1)
- February 2022 (1)
- January 2022 (1)
- December 2021 (2)
- November 2021 (2)
- October 2021 (1)
- September 2021 (1)
- August 2021 (1)
- July 2021 (1)
- June 2021 (1)
- May 2021 (1)
- April 2021 (1)
- March 2021 (1)
- February 2021 (1)
- January 2021 (1)
- December 2020 (3)
- November 2020 (1)
- October 2020 (1)
- September 2020 (1)
- August 2020 (1)
- July 2020 (1)
- June 2020 (2)
- May 2020 (1)
- April 2020 (1)
- March 2020 (1)
- February 2020 (1)
- January 2020 (1)
- December 2019 (3)
- November 2019 (1)
- October 2019 (1)
- September 2019 (2)
- August 2019 (1)
- July 2019 (1)
- June 2019 (1)
- May 2019 (1)
- April 2019 (1)
- March 2019 (1)
- February 2019 (1)
- January 2019 (1)
- December 2018 (3)
- November 2018 (2)
- October 2018 (1)
- September 2018 (1)
- August 2018 (1)
- July 2018 (1)
- June 2018 (1)
- May 2018 (1)
- April 2018 (2)
- March 2018 (1)
- February 2018 (1)
- January 2018 (1)
- December 2017 (2)
- November 2017 (2)
- October 2017 (1)
- September 2017 (1)
- August 2017 (1)
- July 2017 (1)
- June 2017 (1)
- May 2017 (1)
- April 2017 (1)
- March 2017 (2)
- February 2017 (2)
- January 2017 (2)
- December 2016 (7)
- November 2016 (2)
- October 2016 (2)
- September 2016 (1)
- August 2016 (1)
- July 2016 (1)
- June 2016 (1)
- May 2016 (2)
- April 2016 (1)
- March 2016 (2)
- February 2016 (1)
- January 2016 (1)
- December 2015 (3)
- November 2015 (1)
- October 2015 (3)
- September 2015 (2)
- August 2015 (2)
- July 2015 (3)
- June 2015 (3)
- May 2015 (4)
- April 2015 (2)
- March 2015 (4)
- February 2015 (1)
- January 2015 (3)
- December 2014 (3)
- November 2014 (2)
- October 2014 (1)
- September 2014 (2)
- August 2014 (2)
- July 2014 (3)
- June 2014 (2)
- May 2014 (1)
- April 2014 (1)
- March 2014 (4)
- February 2014 (4)
- January 2014 (3)
- December 2013 (5)
- November 2013 (4)
- October 2013 (3)
- September 2013 (2)
- August 2013 (2)
- July 2013 (2)
- June 2013 (3)
- May 2013 (2)
- April 2013 (2)
- March 2013 (2)
- February 2013 (2)
- January 2013 (3)
- December 2012 (4)
- November 2012 (2)
- October 2012 (2)
- September 2012 (4)
- August 2012 (1)
- July 2012 (3)
- June 2012 (2)
- May 2012 (3)
- April 2012 (3)
- March 2012 (2)
- February 2012 (3)
- January 2012 (3)
- December 2011 (5)
- November 2011 (3)
- October 2011 (2)
- September 2011 (2)
- August 2011 (2)
- July 2011 (2)
- June 2011 (2)
- May 2011 (2)
- April 2011 (2)
- March 2011 (2)
- February 2011 (2)
- January 2011 (3)
- December 2010 (7)
- November 2010 (1)
- October 2010 (1)
- September 2010 (1)
- August 2010 (3)
- July 2010 (4)
- May 2010 (1)
- April 2010 (2)
- March 2010 (2)
- February 2010 (2)
- January 2010 (3)
- December 2009 (3)
- November 2009 (8)
- October 2009 (7)
- September 2009 (5)
- August 2009 (4)
- July 2009 (6)
- June 2009 (6)
- May 2009 (14)
- January 1970 (1)
Copyright(C) B-Blog project All rights reserved.
Comments
Post a Comment