いろいろ試す42

6月になるというのに10万円まだ来ないよ

●Windows10でラズパイ4の起動SDイメージをバックアップ/レストアする
意外とネット上になかったのでねむいさん流のやり方を残しておきます。

使うアプリケーション
・バックアップ
 DD for windows
 R2のほうはまだベータ版で動作しないので(ねむいさんとこもダメ)旧番の
 Ver.0.9.9.8を使用してください。
・レストア
 balenaetcher
 かつてラズパイの初期イメージ書き込み用に推奨されていたものです。
 こちらはzip圧縮したイメージも展開して書き込みができるのでディスク容量の
 節約になります。
 
・DDwinでバックアップのやり方

RaspberrypiのOSがインストールされたmicroSDをUSBカードリーダーに指して
Windows10から認識させます。ラズパイのOSイメージが仕込んであるmicroSDは
bootというラベルが付いたFAT32のパーティションと本来のラズパイのOSがある
ext4があります。Ext2fsdなどのソフトをインストールしてない限りはフォーマットを
求められてしまうのでうっかりフォーマットしないようにして無視しましょう。


DDWinを管理者モードで起動します。管理者でないとドライブを認識できません。


「ディスク選択」でラズパイのOSのインストールされたmicroSDカード(bootのラベルの)
ドライブを指定して「ファイル選択」で保存先ディレクトリとファイル名を決定して
「>>読み込み>>」ボタンを押すとバックアップ開始です。

DDwinはlinuxのddコマンド宜しくディスク上のデータを1セクタずつ最初から
最後まで読み取ります。そんなわけでバックアップはSDカードの容量が大きければ
大きいほど悠久の時間がかかります。
時間がかかりますが確実です。こいつで読みだしたイメージは容量さえ足りれば
どんなmicroSDにも書き出すことができます!
sudo apt-updateの前は保険でバックアップしておくとよいでしょう。

さて、読みだしたデータはmicroSDのカード容量ぶん馬鹿正直に読み出すので
32GBのカードならなんと32GBのサイズになっちまいます!!!
こんなものそのまま置いておけないのでとっとこzip圧縮します!!
zipで固めるとラズパイOS「Raspbian」フルセットでも4GBちょっとに収まります。


・balenaetcherで書き戻す


さっきのzip圧縮したイメージをターゲットのSDに書き戻す!!!

展開しながら書き込んでくれます。


書き込みとベリファイ終わり。終わった瞬間にまたwindowsからフォーマットを
求められてしまうのでうっかりフォーマットしないようにして無視しましょう。

ラズパイ本体に描き戻したmicorSDを指して無事起動。
おしまいっ!めでたしめでたし。とっても簡単だ!

というわけで複数のツールと手間はかかりますが確実に起動可能なイメージが
保存/書き込みできますので変な設定してラズパイが起動できなくなった時の復帰
手段として覚えておいて損はありません!




●最近続々出だした高耐久SDカードの性能を見る



まずはTOSHIBA製の高耐久128GBカードEXCERIA THN-M303E1280A2(以下M303E)です。
ねむいさんがこのカードを手に入れたころにはTOSHBAメモリからKIOXIAに名前が
変わってしまいましたが(2019.10.01)、昨年の夏に世に出たようです。
SDSpeedClass10、UHS-I U3、VideoSpeedClass30,ApricationClass1(A1)の
規格や-25~+85度の動作環境温度を満足しており、さらに6,000時間の書き込み保証を
しているそうでドラレコや監視カメラに最適なカードとうたっております。

まずはWindows上からベンチを取ります。

チマチマ書きもめちゃくちゃ早いですね。ラズパイのOS用にも良いでしょう。
マイクロンの物と比べるとちょっと遅く感じますがこの数値でも十分早いです。

お次はSTM32H7からカードの情報を読み出してみました

FatFs module test terminal for STM32H747XIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : May 31 2020
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read at 22726 kB/sec.
>fs
FAT type = exFAT
Bytes/Cluster = 131072
Number of FATs = 1
Root DIR entries = 0
Sectors/FAT = 16384
Number of clusters = 944384
Volume start (lba) = 32768
FAT start (lba) = 49152
DIR start (lba,clustor) = 4
Data start (lba) = 65536

Volume name is M303E_128GB
Volume S/N is 78EB-41E0
...
1 files, 132949600 bytes.
120881152 folders.
120750336 KiB total disk space.
4 KiB available.
>ds 0
rc=0
Drive size: 241827840 sectors
Erase block size: 16384 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
CSD:
00000000 40 0E 00 32 5B 59 00 03 9A 7F 7F 80 0A 40 00 AF @..2[Y.......@..
CID:
00000000 02 54 4D 44 52 31 32 38 74 07 63 06 A1 01 3C 03 .TMDR128t.c...<.

Parsing SD CID Register
Manufacturer ID :0x2
OEM/Application ID :TM
Product Name :DR128
Product HwRev :7
Product SwRev :4
Serial Number :0x076306A1
DateCode.Month :12
DateCode.Year :2019

OCR:
00000000 C1 FF 80 00 ....
SD Status:
00000000 80 00 00 00 08 00 00 00 04 00 A0 00 20 07 3A 1E ............ .:.
00000010 00 08 00 00 00 01 00 00 01 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 C5 84 43 60 03 40 1A ...C`.@.

Parsing SCR
SD Spec Version :2
SD Spec Version 3 :1
SD Spec Version 4 :1
SD Spec Version X :1
SD Security :4
SD Bus Width :5

SD_Spec V5.xx!
Detected as SDXC Card!
Available UHS-I Mode.
Available UHS Speed Class U3.
Available SD Speed Class 10.
Available Video Speed Class 30.
Available Application Performance Class1, A1 Card.
>

単純な読み出しはSDHighSpeedの限界値まで出てますね〜
また、SdSpecはV5.xxで各種規格はスペック通りに満たしているとわかります。





お次はSANDISK製(ここはWestanDigitalになっちゃいましたが)のMAX ENDURANCEと
謳う超高耐久microSDカードSDSQQVR-064G-GN6IAです。
なんと30,000時間の書き込み(128GBはその倍)を保証し-25〜85度の動作温度保証
とSDSpeedClass10、UHS-I U3、VideoSpeedClass30の規格を満足しています。
アプリケーションクラスは無いみたいですね。こちらもドラレコや監視カメラ
の連続書き込み用でチマチマ書き込みはそれほど得意ではないのかも!?しかし…


とりあえずベンチ。

あれ…TOSHIBAのより性能高い…!?チマチマ書きもA1クラス保証の奴よりいいぞ!?

STM32H7からカードの情報を読み出すとその理由が判明!
FatFs module test terminal for STM32H747XIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : May 31 2020
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read at 21631 kB/sec.
>fs
FAT type = exFAT
Bytes/Cluster = 131072
Number of FATs = 1
Root DIR entries = 0
Sectors/FAT = 16384
Number of clusters = 486992
Volume start (lba) = 32768
FAT start (lba) = 49152
DIR start (lba,clustor) = 4
Data start (lba) = 65536

Volume name is SQQVR-064G
Volume S/N is D6EA-C58C
...
1 files, 132949600 bytes.
62334976 folders.
62204160 KiB total disk space.
4 KiB available.
>ds 0
rc=0
Drive size: 124735488 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
CSD:
00000000 40 0E 00 32 DB 79 00 01 DB D3 7F 80 0A 40 40 F9 @..2.y.......@@.
CID:
00000000 03 53 44 53 48 36 34 47 80 17 A7 01 58 01 41 A1 .SDSH64G....X.A.

Parsing SD CID Register
Manufacturer ID :0x3
OEM/Application ID :SD
Product Name :SH64G
Product HwRev :8
Product SwRev :0
Serial Number :0x17A70158
DateCode.Month :1
DateCode.Year :2020

OCR:
00000000 C1 FF 80 80 ....
SD Status:
00000000 80 00 00 00 08 00 00 00 04 00 90 00 0F 05 39 1E ..............9.
00000010 00 08 00 00 00 02 FC 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 45 84 87 00 00 00 00 .E......

Parsing SCR
SD Spec Version :2
SD Spec Version 3 :1
SD Spec Version 4 :1
SD Spec Version X :2
SD Security :4
SD Bus Width :5

SD_Spec V6.xx!
Detected as SDXC 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 32 Supported
A2 Cache Supported.
>

御覧の通りなんとA2カードだった!?SDSpecもV6だし間違いない!!!


というわけでMAXENDURANCEを誇るSANDISKの超高耐久カードはカタログスペック
以上の規格を備えた高性能カードでもあったことがわかりました!!!


お値段的には202005時点では同容量では性能が若干劣るTOSHIBAのほうが安いです。
購入の際は価格対効果を考慮して自分に合ったやつを使っていきましょう。


(※STM32H7から読みだしたときに"FAT type = FAT0"とあるのはChaNさんのサンプル
 からポーティングした時のバグです(FAT0ではなくexFAT)。
 6月定期更新で修正します。)

20200531修正しました

いろいろ試す41

駄目だ…コロナのせいで休業になってブログ更新の時間獲れると思ったら逆に
労働時間パワーアップしやがった…(←言い訳)


●Raspberrypiはぢめました
年末に欲張りセットを買ったきりになってましたがわずかな時間を見つけて
ねむいさんもようやく手をつけてみました!!

RaspBerrypi4 modelB 4GB
Raspberrypiの4世代となるボードだそうで主に下記のぱわふりゃーなハード
ウエアが搭載されています。
・gigabit ethernet
・USB3.0
・HDMI dual Display
・Bluetooth4.2
・wifi(速度不明)

もうなんというか普通のPCですね…


CPUはCortex-A72プロセッサの「BREADCOM BCM2711」だそうです。


メモリはこのモデルの最大値の4GBの奴を選びました。


Bluetoothとwifiがあるので当然国内の電波法には対応しておりしっかり
技適は獲れてますね…誰がAHOや!

また、電源は今はやりのUSBType-Cコネクタからとります。当然要求される
電流値もぱわふりゃーなヤツで5V/3A以上が最低条件です。
ねむいさんは電圧降下が考慮された5.1V/3Aのスイッチングアダプタを購入
しました!


消費される電流値から放出される熱量を考慮してヒートシンクケースも
アマゾンで購入しております。そんでもってHDMIに対応した480x800のTFT
液晶モジュールも購入してありますので準備万端です。


Raspberrypi4はボード上にeMMCとかはなく、SDカードからの起動オンリーと
なっています。
OSイメージの書き込み方は「raspida.com」様の手順に倣いました。
OSは"Raspbian Buster with desktop and recommended software"を選択
して"balenaEtcher"というwindowsのソフトでSDカードにイメージを書き込んで
いました(が2020年4月に公式の書き込みソフトが配布されたようです)


てなわけで電源投入!!





キタ━━━(゚∀゚)━━━!!


キーボードはまだないですがマウスでなんとか操作できますがここまで行けました☆


そんでもってwifiからねむいさんのメインPCのモバイルホットスポット経由でVNCで
リモート接続、そしてメインPCからRaspiのブラウザを操作して…


虹裏に自分が建てたスレッドにも投稿成功!


とりあえずねむいさんがやりたかったことはできました…!
ぇ?これからのことどうするって!?それはこれから考えます!!!!!


●Win10のモバイルホットスポットをまともに動かすためのメモ
Windows10にはかつてのSoftAPに相当する機能が簡単に利用できる"モバイル
ホットスポット"なるものが存在しますがなんでかすぐにへそを曲げてしまい、
思ったような動作になりません。


Raspberrypiをwifiで接続しようとしたとき引っかかったのですがIPアドレスが
164.254.***.***というローカルリンクアドレスとかいうやつになってしまい、
このアドレスになっちゃうと外部のネットにつながりません。

で、モバイルホットスポットのメインPCで↑にならないための事前準備など

1.IPv4で接続する、IPv6は停止する(最優先)
2.ここの汚いサイトの手順を実行する(丸投げ)、特にSNPの設定は重要

終わり。
これでwifi/bluetoothから安定してモバイルホットスポットが使用できるように
なります

が、もし再発してしまった場合はまずは下記の操作をしてください。
1.デバイスマネージャー起動 ->表示->非表示のデバイスを表示
2."Microsoft Wi-Fi Direct Virtual Adapter #(数字)"を全部削除!
  
3.また、wifiアダプターで使用していなくて非表示になってるやつも削除!
4.PC再起動
これでほぼ何とかなります。Bluetoothでもこの現象が出ることがあり、大抵
USB接続のBluetoothドングルを別のUSBポートに繋げたらなってしまいます。
この場合は落ち着いてデバイスマネージャーから非表示になっている奴を
消すと改善します。Win10のモバイルホットスポット機能は動作の安定性は低い
ですが対処法さえしってしまえば強力な武器になると思います。

いろいろ試す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の開発環境もう一回総ざらいですね〜…すっかり浦島状態です。

OpenOCD小ネタ26 -とうとうXPともお別れ-

とうとうこの時が来てしまいました…
ねむいさんのぶろぐ創設時より長年サポートし続けてきたWindowsXPともお別れ…!


どういうことかというとOpenOCDがリンクしているlibusbのWindowsXPのサポートが
コードからオミットされて終了してしまった
のです…もうXPで動かせません。

Oh...my...コンブ


XPのマイクロソフトのサポートが終わってもう6年、Windows7のサポートすら終わった
のでXPはこれで完全にお役御免と相成ったわけです。
まぁ実際の開発の現場じゃ昔のソフト動かすためにバリバリの現役だったりするのです
けどもそれは特殊な状況ですから今日日の普段使いのWindows系OSはすでに使いづらい
Win10に切り替わっていると思います。


というわけでOpenOCDバイナリのダウンロードページのリンク先の奴はすでにXPサポート
はオミットされた最新のlibusb1.dllが梱包されたものに変わっております。
まだXPで踏ん張ってる人はこちらの最終verをご利用ください。


同じくして他ツールも今回のlibusbがらみで更新を適用し、最新化をしました。
UrJTAGFlashROM、そしてavrdudeが影響を受けてwindows7以降専用となって
おりますのでご注意願います。
また、64bitOS下でも32bitバイナリで不都合はないため、利便性を重視して
x86版でもx64版でもどちらのOSでも使用できるようにOpenOCDも含めてすべて
32bitバイナリのみの提供とさせていただいております。

Go to top of page