いろいろ試す48

●最近のOpenOCD更新事情
今年の2月に即効飽きて罪基板になってしまったRaspiPico。
こちらは複数コアを持つCortex-M0+のMCUを搭載しているわけですが、OpenOCDで
使う為にはSWDマルチドロップに対応しないといけません。

現状ではまだRaspiPico専用のOpenOCDを使用することになりますが、OpenOCDの
gerritにはマルチドロップのパッチが上がっており検証が繰り返されております。
なんかもうそろそろmergedになりそうな雰囲気ですので首を長くして待つことに
しましょう。それとねむいさんとこのOpenOCDバイナリは本家とESP32とRaspiPico
の3つに分裂してしまっているのですべて統合してすっきりさせたいものです。


●モノがない…
・半導体製品がない
皆様ご存じの通り、コロナショック以来半導体需要が異常に増加しており半導体
特にマイコンの納期がやたらと延びています。
ねむいさんのところも打撃を受けていて旧三菱系ルネサスマイコンの納期が来年とか
言われてしまい必死になって流通在庫をかき集め何とか糊口をしのいでいる次第です。
STM32とかのCortex-M系ARMマイコンももちろん波及しており品切れになったり納期
延長とかになっていると商社の方に話を聞きました。
電脳おじ様のブログにおいてSTM32の枯渇問題について深く言及されており非常に
参考になりました。

来年になったら状況変わるかも?って楽観的に構えてましたが…

・マテリアルがない
ないわけじゃないんですけどなんかすごい値段が跳ね上がっているのです。
特に銅。先物チャート見ていただければわかりますがこちらもコロナショックを
皮切りに2021年7月末現在も超爆上げしており
実物も糞みたいに上がっています。
で、銅の値段が上がると影響するのが電線です!特に太い電線の価格がころっころ
変わっている!もう勘弁してくだち!111!!!
そして電線の値段が上がるということは…

・ナイロンもないろん
す み ま せ ん
ワイヤハーネスとか基板接続用コネクタでよく使用される66ナイロンとかが
ないろんとのことです…
こちらについてはころすけさまのコネクタ納期遅れについてのブログ記事解説に
詳しいです…ちなみにコネクタだけじゃなくってリレーやスイッチとかの機構
がある電子部品やはたまたプラスティックのカバーがあるメカパーツすら納期
が遅れているそうでしかも上にあげた通り金属系も値段上がっているのでプライス
ツインターボ上げ状態で最終製品はマルチプルターボ上げになり我々の給与に
マイナスに作用するといたるがしんじゃうルナ先生理論となっております。
なお最終製品の納期はマルチプルターボにならなくてそのぶんだけねむいさんの
休日が減ります。

そんなわけでワイヤハーネスの制作費用も値段が上がってしまったので自分で
ハーネス打つ機会がなんか増えた気がします…
ころすけ様は2022年まで半導体不足が落ち着かないと予想されておりますが
各企業がパニックになって過剰に抱えた在庫が何年かたって秋月とかに大量に放出
されるんじゃないかなと私も思ってます。特にルネサス。


●FatFsのディレクトリ破壊問題を追う
ねむいさんじつは数年越しでだらだら調査している問題があります。
内容は"FatFsでファイルコピーしたらディレクトリが破壊される"という内容で
下記の条件で起こります。
・128MByteのMMCv3カード
・FAT16でフォーマット(FatFs・Windowsでフォーマットしても同じ結果)
・512Byte以上のファイルをコピーすると発生。それ以下では壊れない。
・SPI互換モード/ネイティブモードの両方で発生する。
・気づいたのは2019年の夏。R0.13から最新のR0.14bまで発生確認済み。


CQ誌のMB618T付録基板のSPIで試したときはこんな感じにです
コピーしたらぐっちゃぐちゃ。


2014年ごろのMB618T向けのプログラム引っ張り出してきても同じ。


STM32H7のSDMMC使ったいつものでも同じ結果に…

FatFs module test terminal for STM32H747XIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Jul 30 2021
>fs

FAT type = FAT16
Bytes/Cluster = 16384
Number of FATs = 1
Root DIR entries = 512
Sectors/FAT = 32
Number of clusters = 7836
Volume start (lba) = 63
FAT start (lba) = 64
DIR start (lba,clustor) = 96
Data start (lba) = 128

Volume name is 128MB
Volume S/N is 4F45-2E91
...
1 files, 558702 bytes.
125376 folders.
124816 KiB total disk space.
96 KiB available.
>fl

----A2020/09/13 22:02 558702 2613.jpg
1 File(s), 558702 bytes total
0 Dir(s), 127811584 bytes free
>fx 2613.jpg 1713.jpg

Opening "2613.jpg"
Creating "1713.jpg"
Copying file...
524288 bytes copied at 772 kB/sec.

>fl

DR-SA2019/10/01 11:22 524288 ウキコテア,;ユ.eソゥ
D-H-A2056/06/21 03:38 140824249 マノエ鹵}.、zE
-RHS-2041/09/15 12:51 3292342498 イy ャォ.モ。
-R-SA2046/06/09 14:32 4013330094 Eッ・.ネソ
--HS-2026/08/05 29:30 2671303503 g6ゥニ=j゚.3
--HSA1991/04/24 14:63 1051517575 y゙j赧ヤ。・
DR---2062/02/16 30:21 2454358133 ・xv!ウリン.」O・
-R-SA2032/15/27 22:61 1018623284 @・・セ・.ヌW
DR--A2029/04/07 13:40 2681369147 ヲn・ニq;キ.ーm
D---A2026/14/27 19:29 2945400368 キkヒ[n>xk.・
-RH-A2068/15/21 07:47 1796965267 }イョソc_イコ.
DRH-A2015/11/05 09:00 3404787036 &Kvヒン・. 
-R-SA1993/03/19 20:14 1157293741 タカ8ユ・.トモm
D-HS-1980/00/00 00:00 0 :u鈎4_ro.z盧
7 File(s),2116474074 bytes total
7 Dir(s), 127287296 bytes free
>fm 0 1 16384

The volume will be formatted. Are you sure? (Y/n)=Y

rc=0 FR_OK
>

ううむよくわからない。
フォーマットとかはちゃんとできるしSTM32F7とかのマスストレージのサンプル
つかってWindows上でコピーは全く問題なしだからローレベルの書き込み操作は
問題ないみたいです。

ていうか今日び128GBのSDの時代なのに128MBの1bitモードしかないMMCとかに
こだわるなよって言われそうですがやっぱ気になっちゃいます。


↑とは関係ないですがGCCバージョンアップにともなうビルド時のワーニング
 発生の問題はR0.14aで修正されておりました。ありがとうございます。

中国自然歩道を往く -GoGoWest! 岡山を突っ走る!-

中国自然歩道…それは東海自然歩道や近畿自然歩道と同じく土建屋に定期的に税k
ゲフンゲフフン日本の自然や文化・歴史を知り、国民の健康維持を促進するために作られた
国家的プロジェクトの一つである…!

さて、なんでねむいさんが近畿自然歩道と同じく中国自然歩道を進んでるかというと
今年初めに近畿自然歩道の西端に早々に達してしまい、同時に下関まで続くきわめて
広大なエリアマップが展開してしまったわけでこれが中国自然歩道だったのですが
本当に思いつきの行動なのですがそれなら下関まで行ってやろうじゃないか!
ということで目下攻略中なのでございます。


●2021.06.26 中国自然歩道(柵原・吉が原〜誕生寺)


虹裏メイドの夜は遅い。
仕事が終わって弾丸で津山行のバスに乗り込んで現地で一泊です…
津山はB'zのヴォーカルの稲葉さんの故郷らしくウルトラソウルなお出迎えですね☆



ねむいさんのリサーチ不足で津山よりも美作の湯郷温泉で泊ったほうが
翌日のバスの便も早くて安かったorz
仕方ないので市内循環バス->英田の福本行のバス(2枚目画像参照)で乗り継ぎます…



おぅぃ出発時間もう5分すぎてるぞぃ!
さらに1分後に後ろのバスから出てきたおじいちゃんの運転で福本に向かいます…


何はともあれ福本のバス停に到着です。
しかしながらエントリポイントの柵原の藤原橋はここから7.5kmほど先にあります。



前回通過した中国自然歩道の道標と落ち合いました。
かつてこの地区は片山鉄道なる列車が走っていたそうです。




はぁはぁ…なんかルートミスしたような気がするけど気のせい…
片山鉄道の路線跡、吉ヶ原駅は当時の列車や施設がそのまま残されていました。
コロナで閑散としてますが以前は動態保存された列車が柵原まで走っていた
そうです。とりあえずここで大休憩(まだスタートですらない)



前回のエントリポイント藤原橋を渡って吉井川をクロスしてようやく
今回の中国自然歩道のルートがスタートです!


また道間違えたわクソァ!!!
こんな道標も何もない丁字路右折とか気付くか!!1111!!!!!!



と情けない自分に怒りをぶつけつつ山道を上っていきます…
湿度は常に100%で汗が吹き出しますがきれいな山アジサイに癒されます♥



標高がだいぶ高くなったところで宗形神社です。
水道水があるのでありがたく補給します。粉ポカリと天日塩でミネラル補給も
万端です!


道は再び細くなっていきますが一本道なので迷いません。
今のところ中国自然歩道は舗装された山道の比率が多い感じがします。


おどろどろしい名前の血洗の滝にやってきました。
ねむいさんうっかり道標を見落としていて・・




血洗の滝はそこまでうっそうとしておらずなかなか良い感じの滝でした。
この季節はこういう場所ではに注意ですがどうやらこの辺りは蛭が生息して
いないようで助かりました…


そしてまた道間違えて延々と南下してしまう愚かな私…
本当はさっきの看板のところでV字ターンが正解でした…くそぁ!!



さて、ひたすら山道を進んでいくと吉井高原なる場所の分岐に出会います。
ねむいさん度重なるルートミスで寄ってる暇ないので直進です!



本日の最高地点金毘羅山の頂上を迂回する地点です。
あとは下りですがぴんぼけがきつい・・・・


下りに転じた道を駆け降りると道が開けて本山寺三重塔に出ました。



本山寺の境内を通って門前で少し休憩です。


快適な下りの道が続きます。
時折見える路傍の花にも癒されまくりです🌸


ですが飛ばしすぎ要注意。
中国自然歩道の道標は御覧の通り電柱の高所にある場合が多くうっかり
見落としがちです!



そして本日最後のトレイルに挑む…!
天津神社御旅所なるピークを越えてさらに進む!



天津神社本殿です。
ここをこえたら後は下りのみ!



ダートの道を駆け下りて舗装路に変わったら一気に視界が開けます!
吉備高原はまだまだひろいですね〜


かめ。


さっきのかめさんがいた池が誕生寺池です。
あとは道路に沿って南下します。


次のルートの分岐までやってきました。
焦ってかなりのぺースで進んできたせいか15:10発の電車までかなり時間が
余ってしまい、ついでだから誕生寺に寄ってみます。



誕生寺です。境内はかなり広く敷地外にもたくさん施設がありました。


浄土宗法然上人の霊廟です。南無阿弥陀仏。


大佛様も鎮座しております。



十分余裕をもって予定時間前に誕生寺駅に到着して妙におんぼrレトロな車両で
津山駅に帰還しました。


津山駅に着きましたが帰りのバスは17:30、時間もたっぷりあるので市内を
買い物がてら散策してみますが…ついでに飯食っておこうと思いましたが
みんな閉まっててまったく飯屋がない!


結構探して津山城下で唯一営業してたレストランで名物のホルモンうどんに
ありつけました!


なんか"てっちゃん"つながりで津山はホルモンが名物なんだとか
それでホルモンを合えた焼うどんもソウルフートとなってるようですね!



そしてお土産もたくさん買い込んで(これが今回の目的)JRバスで無事に大阪に
帰還しました…!


というわけで近畿自然歩道に加えて中国自然歩道が追加されて攻略マップが
2倍以上に広がってしまいましたがライフワークのつもりでこれからもガンガン
進んでいこうと思います!

もちろん近畿自然歩道や東海自然歩道の復路も今年の構想に入っており、そちらも
がんばって進んでいきます!

●2021.06.26 中国自然歩道(柵原・吉が原〜誕生寺) GPSログ


今回の走行距離49kmとありますがGPSログがあちこちにすっ飛んでるせいなので
実際の距離は30kmほどとなります。

AVR128DA/DBシリーズとかATMega4809とか使ってみる

●買ったはいいものの肥やしになりそうなのでやるなら今しかねぇ…

昨年末に正統進化系のAVR128DAシリーズを入手しましたがようやくいじる機会が
出来たので紹介します。

AVR128DA48 Curiosity Nanoというキットで購入しました。値段は2000円ちょっとです。

AVR DA/DBファミリーに位置付けられるこの品種はなんと動作電圧1.8V~5.5Vの範囲で
24MHz駆動を保証しておりUARTとかも待望のフラクタルディバイダなんかも装備して
おりなにより過去の品種と比べてもはるかに安価であるという超進化を遂げております。

が、フラッシュメモリアクセス(後述します)とI/Oのトレラントは従来のままなのでもう
ちょっとがむばってほしいですね。


なお今回のブログ記事作成に当たり下記先達のサイトを参考にさせていただきました。
みなぎ様
なんでも独り言様
KemushiComputer様



●最初に立ちはだかるUPDI難民問題
そしてフラッシュの書き込み方式はAVR-0/1系と同じくUPDIというプロトコルに従って
書き込みを行います。これ実態は半二重のUARTなのですがLUFAとか簡単に対応が
できるんじゃないのと思っていたのですがXMEGAのPDIとも勝手が違うらしく、従来の
自作系ライタとは相性が悪くて実装例はあまりなくて普及が進まない状態となっている
と感じております。

でその中でとれる方法は大きく分けて4つ
ヾ冉阿靴ATMELICE/PICKITを買ってMicrochipの開発環境から読み書きする
安価な評価ボード(XPlained/Curiosity)のファームを書き換えてUPDI専用にする
jtag2updiで専用のavrdudeで書き込む
ぜ詑屬枠焼鷭UARTなので仮想COMでせこせこ自作する(pyUPDIとかも一例)


ねむいさんは値段対費用効果が高いと思われる△諒法をとりました。ATTINY202の
時にATTINY104XplainedをUPDIプログラマ化してAvrdudeで書き込んでいます。
い硫樵COM使う方法でavrdudeが対応するのが最良なのですが首を長くして待ってます。
みなぎ氏のサイトではそれに近いことにちゃれんぢされているようですごく期待してます☆
ぁ、なんかいつの間にか薄い本同人のネタにしますって書き換わってる・・・・


avrdudeは現状はAVR128DA/DBなどの128kbフラッシュを持つ品種に対応しておらず、
パッチを充てる必要があります。ちなみにCuriosityNanoにも対応してくれてすごく
助かります♥

avrdudeを使って書いてみたところはこんな感じになります

> "C:¥Devz¥Coreutils¥bin¥make.exe" program
C:/Devz/AVR/avrdude/avrdude -v -p avr128da48 -P usb -c pkobn_updi -U flash:w:main.hex

avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:¥Devz¥AVR¥avrdude¥avrdude.conf"

Using Port : usb
Using Programmer : pkobn_updi
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
AVR Part : AVR128DA48
Chip Erase delay : 0 us
PAGEL : P00
BS2 : P00
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 0
StabDelay : 0
CmdexeDelay : 0
SyncLoops : 0
ByteDelay : 0
PollIndex : 0
PollValue : 0x00
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
prodsig 0 0 0 0 no 125 125 0 0 0 0x00 0x00
fuses 0 0 0 0 no 9 16 0 0 0 0x00 0x00
fuse0 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse1 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse2 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse4 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse5 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse6 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse7 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse8 0 0 0 0 no 1 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 4 1 0 0 0 0x00 0x00
data 0 0 0 0 no 0 0 0 0 0 0x00 0x00
flash 0 0 0 0 no 131072 512 0 0 0 0x00 0x00
eeprom 0 0 0 0 no 512 1 0 0 0 0x00 0x00

Programmer Type : JTAGICE3_UPDI
Description : PKOB nano (nEDBG) in UPDI mode
ICE hardware version: 0
ICE firmware version: 1.17 (rel. 514)
Serial number : MCHP3280031800001375
Vtarget : 3.31 V
JTAG clock megaAVR/program: 0 kHz
JTAG clock megaAVR/debug: 0 kHz
JTAG clock Xmega: 0 kHz
PDI clock Xmega : 100 kHz

avrdude: Partial Family_ID returned: " "
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e9708 (probably avr128da48)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (2462 bytes):

Writing | ################################################## | 100% 0.79s

avrdude: 2462 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex auto detected as Intel Hex
avrdude: input file main.hex contains 2462 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.44s

avrdude: verifying ...
avrdude: 2462 bytes of flash verified

avrdude done. Thank you.


> Process Exit Code: 0
> Time Taken: 00:02



CuriosityNanoに搭載されているnEDBGはpkobn_updiと指定するようですね。
また、Xplainedの時みたいに無理やりファーム書き換えなくてもupdiがそのまま
使用可能なのもうれしいです。これで2000円ちょっとならよい買い物かも!?


●今度はAVR128DB28だ!

さて今度はキット上ではなく別の品種にも書けるか確かめてみました。
AVR128DB28です!!これもかつてのmega8系の上位互換となっていくでしょう。

と思いきやはじめはXplainedから改造したupdiプログラマから書き込み失敗して
焦りました。どうやらCuriosityNanoのファームではないとAVR128DA/DBシリーズの
フラッシュ書き込みに対応していないと考えられます。


CuriosityNanoで書いたところです。
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
C:/Devz/AVR/avrdude/avrdude -v -p avr128db28 -P usb -c pkobn_updi -U flash:w:main.hex

avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:¥Devz¥AVR¥avrdude¥avrdude.conf"

Using Port : usb
Using Programmer : pkobn_updi
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
AVR Part : AVR128DB28
Chip Erase delay : 0 us
PAGEL : P00
BS2 : P00
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 0
StabDelay : 0
CmdexeDelay : 0
SyncLoops : 0
ByteDelay : 0
PollIndex : 0
PollValue : 0x00
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
prodsig 0 0 0 0 no 125 125 0 0 0 0x00 0x00
fuses 0 0 0 0 no 9 16 0 0 0 0x00 0x00
fuse0 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse1 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse2 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse4 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse5 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse6 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse7 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse8 0 0 0 0 no 1 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 4 1 0 0 0 0x00 0x00
data 0 0 0 0 no 0 0 0 0 0 0x00 0x00
flash 0 0 0 0 no 131072 512 0 0 0 0x00 0x00
eeprom 0 0 0 0 no 512 1 0 0 0 0x00 0x00

Programmer Type : JTAGICE3_UPDI
Description : PKOB nano (nEDBG) in UPDI mode
ICE hardware version: 0
ICE firmware version: 1.17 (rel. 514)
Serial number : MCHP3280031800001375
Vtarget : 3.31 V
JTAG clock megaAVR/program: 0 kHz
JTAG clock megaAVR/debug: 0 kHz
JTAG clock Xmega: 0 kHz
PDI clock Xmega : 100 kHz

avrdude: Partial Family_ID returned: "AVR "
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.00s

avrdude: Device signature = 0x1e970e (probably avr128db28)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (2398 bytes):

Writing | ################################################## | 100% 0.79s

avrdude: 2398 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex auto detected as Intel Hex
avrdude: input file main.hex contains 2398 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 0.43s

avrdude: verifying ...
avrdude: 2398 bytes of flash verified

avrdude done. Thank you.


> Process Exit Code: 0
> Time Taken: 00:02



●最後にATMega4809を試す

こちらは3月くらいに秋月さんから販売されだしたmegaAVR-0シリーズの品種になります。
AVRDA/DBと比べると1世代前の品種になります。こちらもフラッシュ書き込みはUPDIと
なっています。


とりあえずCuriosityNanoで書いてみる
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
C:/Devz/AVR/avrdude/avrdude -v -p atmega4809 -P usb -c pkobn_updi -U flash:w:main.hex

avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:¥Devz¥AVR¥avrdude¥avrdude.conf"

Using Port : usb
Using Programmer : pkobn_updi
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
AVR Part : ATmega4809
Chip Erase delay : 0 us
PAGEL : P00
BS2 : P00
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 0
StabDelay : 0
CmdexeDelay : 0
SyncLoops : 0
ByteDelay : 0
PollIndex : 0
PollValue : 0x00
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
prodsig 0 0 0 0 no 61 61 0 0 0 0x00 0x00
fuses 0 0 0 0 no 9 10 0 0 0 0x00 0x00
fuse0 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse1 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse2 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse4 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse5 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse6 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse7 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse8 0 0 0 0 no 1 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 1 0 0 0 0 0x00 0x00
data 0 0 0 0 no 0 0 0 0 0 0x00 0x00
usersig 0 0 0 0 no 64 64 0 0 0 0x00 0x00
flash 0 0 0 0 no 49152 128 0 0 0 0x00 0x00
eeprom 0 0 0 0 no 256 64 0 0 0 0x00 0x00

Programmer Type : JTAGICE3_UPDI
Description : PKOB nano (nEDBG) in UPDI mode
ICE hardware version: 0
ICE firmware version: 1.17 (rel. 514)
Serial number : MCHP3280031800001375
Vtarget : 3.31 V
JTAG clock megaAVR/program: 0 kHz
JTAG clock megaAVR/debug: 0 kHz
JTAG clock Xmega: 0 kHz
PDI clock Xmega : 100 kHz

avrdude: Partial Family_ID returned: "mega"
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.07s

avrdude: Device signature = 0x1e9651 (probably m4809)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (5344 bytes):

Writing | ################################################## | 100% 2.07s

avrdude: 5344 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex auto detected as Intel Hex
avrdude: input file main.hex contains 5344 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.02s

avrdude: verifying ...
avrdude: 5344 bytes of flash verified

avrdude done. Thank you.


> Process Exit Code: 0
> Time Taken: 00:03



最後にファーム入れ替えたXplainedから。えらいにぎやかになりました。
ATmga4809はXplainedでも書けます。
> "C:¥Devz¥Coreutils¥bin¥make.exe" program
C:/Devz/AVR/avrdude/avrdude -v -p atmega4809 -P usb -c xplainedmini_updi -U flash:w:main.hex

avrdude: Version 6.3-20171130
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch

System wide configuration file is "C:¥Devz¥AVR¥avrdude¥avrdude.conf"

Using Port : usb
Using Programmer : xplainedmini_updi
avrdude: Found CMSIS-DAP compliant device, using EDBG protocol
AVR Part : ATmega4809
Chip Erase delay : 0 us
PAGEL : P00
BS2 : P00
RESET disposition : dedicated
RETRY pulse : SCK
serial program mode : yes
parallel program mode : yes
Timeout : 0
StabDelay : 0
CmdexeDelay : 0
SyncLoops : 0
ByteDelay : 0
PollIndex : 0
PollValue : 0x00
Memory Detail :

Block Poll Page Polled
Memory Type Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
signature 0 0 0 0 no 3 0 0 0 0 0x00 0x00
prodsig 0 0 0 0 no 61 61 0 0 0 0x00 0x00
fuses 0 0 0 0 no 9 10 0 0 0 0x00 0x00
fuse0 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse1 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse2 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse4 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse5 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse6 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse7 0 0 0 0 no 1 0 0 0 0 0x00 0x00
fuse8 0 0 0 0 no 1 0 0 0 0 0x00 0x00
lock 0 0 0 0 no 1 0 0 0 0 0x00 0x00
data 0 0 0 0 no 0 0 0 0 0 0x00 0x00
usersig 0 0 0 0 no 64 64 0 0 0 0x00 0x00
flash 0 0 0 0 no 49152 128 0 0 0 0x00 0x00
eeprom 0 0 0 0 no 256 64 0 0 0 0x00 0x00

Programmer Type : JTAGICE3_UPDI
Description : Atmel AVR XplainedMini in UPDI mode
ICE hardware version: 0
ICE firmware version: 1.13 (rel. 43)
Serial number : ATML2678020200007560
Vtarget : 5.00 V
JTAG clock megaAVR/program: 0 kHz
JTAG clock megaAVR/debug: 0 kHz
JTAG clock Xmega: 0 kHz
PDI clock Xmega : 0 kHz

avrdude: Partial Family_ID returned: "mega"
avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.09s

avrdude: Device signature = 0x1e9651 (probably m4809)
avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed
To disable this feature, specify the -D option.
avrdude: erasing chip
avrdude: reading input file "main.hex"
avrdude: input file main.hex auto detected as Intel Hex
avrdude: writing flash (5344 bytes):

Writing | ################################################## | 100% 1.72s

avrdude: 5344 bytes of flash written
avrdude: verifying flash memory against main.hex:
avrdude: load data flash data from input file main.hex:
avrdude: input file main.hex auto detected as Intel Hex
avrdude: input file main.hex contains 5344 bytes
avrdude: reading on-chip flash data:

Reading | ################################################## | 100% 1.38s

avrdude: verifying ...
avrdude: 5344 bytes of flash verified

avrdude done. Thank you.


> Process Exit Code: 0
> Time Taken: 00:04



こんな感じで市販のライタをそのまま流用もしくはファームだけ入れ替えという
アマチュアリズムに反する行為になってしまいましたが2000円ちょっと出して電圧
変換機能付きのUPDIプログラマ買えるのならもうこれでいいかなと思いまし、た!



●残る問題、フラッシュ領域のリードはどうなった?
そういえばMicrochip体制のtinyAVRからフラッシュ領域のアドレスがデータ領域のアドレスに
変換され割り振られPROGMEMを使わなくても一般的なC言語のconstのように定義したら自動的に
コンパイラが割り当ててくれるようになってくれるはずですが実際にアセンブルリストと
照らし合わせてみてみましょう。


まずATMega1284p
main.cのグローバルにconst charの文字列リテラルをPROGMEMとか使わず定義した場合、
フラッシュ領域のアドレス(0x800000以降)に配置されてしまいます。
このままLPMとか使わずに参照してしまった場合はコンパイラがRAMから読み出すような
ルーチンに変えてしまいます。


続いてATMega4809の場合、ごらんのとおりデータ領域のアドレスに配置されるようになり
ます(実際のデータはプログラムアドレス0x800000以降にある)


AVR128DA/DBは御覧の通り従来のAVRと同じになってしまいます。実はATmega4809と違って
制約があり、データ領域は64KB以内のアドレスしか参照できないためさらにI/Oの分も
差っ引かれて実際には最大4832kByte分しか参照できないことからくると考えられます。
まぁこれAVRのアーキテクチャーの宿命なので仕方がないのですけど128kByte分フルに参照
せしめるためには10年前にねむいさんが行った手法でもってしてやないといけません
※みなぎ氏の調査によるとAVR32DAとか32kbの品種だとだと4809と同じようになるそうです。

PCベースUSBオシロスコープPicoScope5444Dを使う

●誰が豚に真珠や
今からさかのぼること10年前、超円高時代に有利な価格で売られていたPicotech製の
USBオシロPicoscope3206Aを秋月さんより購入し、自作環境の測定器として使ってきました。

そして2021年、満を持して機能を強化した上位モデルの購入に踏み切りました!!




そして我が家にやってきたPicoscope5444D!
アナログ帯域は個人では十分な200MHzで4CH使えてサンプリングもMAX1GS/Sec、
且つMSO(ミックスドシグナルオシロ)と呼ばれるちょっとしたロジックアナライザポートも
備えています!1!111!!

さらに下位モデル3000シリーズの差別化として5000シリーズではFlexResと言って
ハードウエアでサンプリングビット数を最大16bitまで可変が可能です!!!!


2011年のころは4CHオシロとか200MHzで1GS/Secとか100万越えの奴しかまともなの
なかったはずですが現在では選択肢も増えて価格も大幅に下がりねむいさんの資金力
でも十分に手が届く価格となってきたので購入に至った経緯があります。

最初は送料込みの総額が一番安いAmazonで買おうかと思ってたのですが納期が未定に
なってしまったためヤマト科学という計器卸売の商社さんから買いました。
お値段は税込み送料込みで301000円でした。アマゾンも2000円ちょっとしか変わり
ませんけどねなんというか消費税だけで3万近くもするってめっちゃやばいですね
ああそうだ10年前はまだ消費税5%時代だったからていうかもう10年もたってるじゃんか
あああああああaAあああああああぁああああ!!!11!!!1111!



ゲフンゲフフン失礼しました。なお、Picoscopeは英国製のため、ポンド/米ドルと米ドル/円
の為替レートにより日本円で買える値段が大幅に変わりますのでご注意ください。


●とりあえず使ってみようぜ
とはいえ以前の3206Aと操作感覚は変わりません。オシロを操作するためのPCソフトは
数万の格安モデルから100万越えの最高性能モデルに至るまで同一のものが使用できます。


4CH全部使用したところです。
3206Aと比べてCHが4つに増えた以外は違いはありませんね★


なお、ねむいさんが買った4CHモデルは外部電源を接続しないと2CHまでしか使えません。
(MSOポートもMAX2CH分扱い、計6CH分となる)


●Picoscopeの真骨頂プロトコルアナライザ機能を使う
まぁこれも3206Aで紹介してますが改めて。
Picoscopeのソフトは2012年あたりにロジアナのお株を奪うシリアル信号のプロトコル
アナライザの機能が搭載されています。


まずはI2Cバスでやってみましょう。
画像のシリアルデコードの項目を選びます。


オシロのA(CH1)とB(CH2)をSDA,SCLに割り当てました。


I2C信号のやり取りは拙作のSTM32F030-NucleoのI2C液晶とSTTS751の温度表示プログラム
を実行したところです。

CSVファイルに出力して後から解析も可能です。
STTS751の温度データを取得しているところがよく分かると思います。



このプロトコル解析はロジアナポート(MSOポート)でも当然のように使用可能です。
ていうかこのMSOポートはこういう用途に積極的に使うべきですね。


MSOでトリガかけるときは設定方法にちょっとコツがいります。
いちいち設定するのは忘れがちで骨が折れます。


一度こういう特的目的の信号の測定を設定したらファイル->保存で設定ファイルを
保存しそのファイルをダブルクリックで起動すると再び同じ設定で測定が可能です。

このプロトコルアナライザの機能、実はかなり使えます。最初はUARTとI2Cくらいしか
なかったのですが、現在はFlexRayやUSB1.1(FULLSPEEDまで)、SPIも解析可能となり
非常に強力なツールとなりました。ちょっとしたシリアル信号の解析ならロジアナを
引っ張り出す必要もなくなりました。




そんなわけでねむいさんが学生時分の頃はまさに"高値"の花で全く手が出なかった
オシロスコープは現在では実務にもバリバリ使えるレベルで個人でも手が届くような
値段で手に入るようになりました。

据え置き型との対比としては"PCがないと使えない"という最大の弱点がありますが
もはやPCは一家に数台な時代ですしテクトロの1000万クラスの据え置きオシロも
中身はWindowsOSで動いてるまさに一体型のパソコンオシロみたいなもんですので
個々の環境や測定対象に合わせて使いやすいものを選択してくのがよいでしょう。

いろいろ試す47

●紫…本当に紫

やったZE!キャプ翼のけぉカードゲッツ!!!

…じゃなくてSandiskを喰ったWesternDigital社が監視カメラ用にリリースした
高耐久microSDカード"WD Purple QD101"をやっとこ入手しました!!!!
128GB品のWDD128G1P0Cの型番の製品です!



Sandiskはブランド名は残ってはいますが産業用/工業用はどんどんWDへと切り
替わってる感じですね〜これは一般向けですが。
なお、現在はさらに高性能なQD312なるシリーズも出ているようですが値段がまだ
高すぎるのでまた今度の機会にします…


まずはいつものべんちです。
・・・うーn…トランセンドのあれが強すぎて霞んじゃいますね…
※宣伝ではない

おつぎはSTM32H7のいつものでハードウエア情報を読み出します

FatFs module test terminal for STM32H747XIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Mar 19 2021
>fg piano

rc=0 FR_OK
>fo 1 ftbt.mp3

rc=0 FR_OK
>fr 132949600

132949600 bytes read at 16964 kB/sec.
>fs

FAT type = exFAT
Bytes/Cluster = 131072
Number of FATs = 1
Root DIR entries = 0
Sectors/FAT = 16384
Number of clusters = 975280
Volume start (lba) = 32768
FAT start (lba) = 49152
DIR start (lba,clustor) = 4
Data start (lba) = 65536

Volume name is WDD128G1P0C
Volume S/N is E240-C6DE
...
1 files, 132949600 bytes.
124835840 folders.
124705024 KiB total disk space.
4 KiB available.
>ds 0

rc=0
Drive size: 249737216 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 03 B8 AB 7F 80 0A 40 40 5F @..2.y.......@@_
CID:
00000000 03 53 44 57 58 31 32 38 80 57 E3 8D AF 01 4C 29 .SDWX128.W....L)

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

OCR:
00000000 C1 FF 80 00 ....
SD Status:
00000000 80 00 00 00 08 00 00 00 04 00 90 00 0F 05 19 0A ................
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 U1.
Available SD Speed Class 10.
Available Video Speed Class 10.
Available Application Performance Class2, A2 Card.
A2 CommandQueue Depth 32 Supported
A2 Cache Supported.
>

2020年12月製ですね〜。そしてManufacturerIDサンディスク(0x3)のまんまです。
A2グレードだそうですがそれ引き出せられるハードがないです…

ところでWDPurpleQD101は"スマートなストレージ管理"なるものがありそれに対応する
カメラなどで寿命判定を行うことができます。
で、具体的にそれって何といいますとCMD56によるSMART値の取得にほかなりません。

WD製のSDカードはSandiskの流れを汲むのでCMD56の引数及び得られる構造体は
Sandiskと同じ(0x00000001)で行けます!



Sandiskのころと全く同じなのでとても安心感がありますね☆
ログはこちらに置いておきます。ご参考に。


というわけで一般向けでは安価にお手軽に安定して購入できるWDPurpleを紹介しました。
これからの時代はSDカードには高耐久かつ寿命判定ができるものが求められます!
皆様もねむいさんのぶろぐを参考にして使用環境に最適なカードを選んでください!



●国土地理院の地図の利用規約が緩和されていた件
すでに3か月もたってしまいましたが昨年末に毎年恒例の国土地理院の地図のweb
使用許可をもらおうと申請したのですがなんと却下されてしまいました。

なんでも令和元年12月10日に地図の利用手続きが改正になり、個人ブログの
登山マップで国土地理院の地図を利用する…つまりねむいさんみたいな使い方する人は
緯度経度等の位置座標のない地図は申請不要となったとのことです。


これはとてもありがたいですね〜☆わたしのブログではGPSの軌跡を示す時は
↓みたいな感じで地図画像右下に使用表記をしております。



●最強LDO・LT1963A+3.3V版再降臨
一時期は面実装タイプのLT1963Aの3.3V版が売ってましたが秋月さんが型番を
間違ってて不人気だったのですが、ねむいさんがセラミックコンデンサ使用可能な
A版であることを見出したとたんに速攻売り切れになってしまい長いこと経って
しまいましたが使いやすいSOT-223パッケージになって大復活しました。

デジキで買うよりかは安いですが350円もしますが値段分以上の働きをしますので
ねむいさん激推しです!!!!


●Win10で月例更新のたびに「Windows更新プログラムを構成できませんでした 変更を元に戻しています」ってなって更新に失敗しやがる問題の対処の件
一回なると以後100%失敗するやばいやつ。0x80070003のエラーが出ることが多いですが
これで検索してもとんちんかんな回答ばっかりorz
ねむいさんも半ばあきらめてましたがやっと対処法を見つけました!!!

やり方
々洪啓最圓靴燭C:/Windows/Inf/setupapi.dev.log を開く
"FAILURE"という文字列を検索。
8〆がヒットした箇所に記載されているフォイルやフォルダを
 C:/Windows/System32/DriverStore/FileRepository内に作成
い燭い討C:/Windows/System32/DriverStore/FileRepositoryに入っているドライバを
 クリーナーソフトとかで強引に削除したりするとこうなるorz
 
こんなんわかるか〜!
でも何とかアップデートできるようになりました…

大緊急事案!!!1!Raspberry Pi Picoはぢめました!!1!!1

●なにっ

超小型linuxPCの代名詞となったRaspberryPiですがNanoに加えてPicoなるものも
ラインナップに加わりました!!
秋月電子通商さんで550円ですでに販売されており、すでに手に入れられた方も
いるかと思います。ねむいさんも早速購入していぢって見ることにしました!!!



基板としてはRaspiNanoよりも一回り小さいサイズとなっております。


MPUはARMのCortex-M0plusのデュアルコア構成、Raspberry財団のロゴがレーザー
マーキングされた特製のものとなっております!
しかもM0+のコアながら100MHz越えの高速クロックで動く代物です!!
※細かいスペックは次回以降に紹介します。


●とりあえず動かしてみる

USB-microコネクタから給電するとフラッシュに何も書いてないときもしくはBOOLSEL
ボタンを押しながら給電するとマスストレージとして見えます。binファイルではなく
uf2(USB Flashing Format Data)をドラッグアンドドロップすることにより内蔵フラッシュ
に書き込まれるようです。

RaspiPicoの公式ページにはGettingStartとしてこのD&Dで始める方法が紹介されており
動作確認用のuf2ファイルも落とせます。
これでLチカを確認できます。


●プログラムのビルド方法は?
同じくGettingStartedに方法が書いてあります。OS間で共通する項目はSDKを使いCMAKEと
Pythonでmakefileを生成してビルドするということです…
…CMAKEってねむいさん嫌いなんですよね…記述がちょっとでも抜けてたら思った通りに
動作しなくて…Raspiなので基本的にLinux系OS下のビルドを前提としています

幸いにもWindows環境下のビルド指南もしております。
もちろんCMakeとPythonとVisualStudioCodeが必要です。が、ねむいさんは中途半端に
MSYSのOpenOCDビルド環境を持っているのでそちらと折半してビルドしてみました。



(格闘すること2時間後)
あああもうめちゃくちゃだよ
make一発で出来るようにシンプルなライブラリの構成にしてほしかった…!
しかも一度に全部のプロジェクトをビルドしやがるのでものすごく時間がかかります。
※ねむいさん式RaspiPicoビルド環境は次回以降に(またかいな


●ビルドしたやつをどう書き込むのか?
ビルドしたプログラムを書き込むだけなら上記のUF2ファイルをマスストレージ
モードでD&Dで書き込む方法がありますがねむいさんがそんなので済ませるわけは
ありません!!!

Cortex-M0+コアなのでOpenOCDが使えるはずです…がデュアルコアかつSWDオンリー
なので無理か…と思いきやRaspberryPi公式でOpenOCDをRP2040用にForkしており、こちらは
なんとマルチドロップSWDとRP2040のフラッシュ書き込みドライバの対応済です!!


画像の上部に写ってるイラスツは気にしてはいけない。
RP2040用の書き込みcfgも作成してRaspiPico専用OpenOCD+JTAGKey2を使ってRaspiPicoに
elfファイルを書き込みせしめることに成功しました!!!!
ログはこんな感じになります。

> "C:¥Devz¥Coreutils¥bin¥make.exe" program
openocd-pi -s C:/Devz/ARM/OCD/tcl -f interface/jtagkey2_swd.cfg -f target/rp2040_swd_flash.cfg -c "mt_flash blink.elf"
Open On-Chip Debugger 0.10.0+dev-gf8e14ec97 (2021-02-07-14:35)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
Info : FTDI SWD mode enabled
Info : Hardware thread awareness created
Info : Hardware thread awareness created
Info : RP2040 Flash Bank Command
Info : clock speed 1000 kHz
Info : SWD DPIDR 0x0bc12477
Info : SWD DLPIDR 0x00000001
Info : SWD DPIDR 0x0bc12477
Info : SWD DLPIDR 0x10000001
Info : rp2040.core0: hardware has 4 breakpoints, 2 watchpoints
Info : rp2040.core1: hardware has 4 breakpoints, 2 watchpoints
Info : starting gdb server for rp2040.core0 on 3333
Info : Listening on port 3333 for gdb connections
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x000000ee msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0xf1000000 pc: 0x000000ee msp: 0x20041f00
Info : RP2040 B0 Flash Probe: 2097152 bytes @10000000, in 512 sectors

target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000178 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000178 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000178 msp: 0x20041f00
Info : Writing 16384 bytes starting at 0x0
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000178 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000178 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000178 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000178 msp: 0x20041f00
target halted due to debug-request, current mode: Thread
xPSR: 0x01000000 pc: 0x00000178 msp: 0x20041f00
shutdown command invoked

> Process Exit Code: 0
> Time Taken: 00:01



そんなわけでとりあえずほんとに基本だけ紹介してみましたが次回以降は
RP2040のMPUスペックやメモリ構成などの深い部分に突っ込んでいこうと思います!


それに先立ってRaspiPico(RP2040)用のOpenOCDバイナリを公開いたします。
ねむいさんのいつものOpenOCDバイナリに書き込み用cfgとともに同梱しておりまので
どしどしご利用ください!!!!

↑RaspiPico専用OpenOCD:openocd-pi.exe
 同じく専用cfg:target/rp2040_swd_flash.cfg

Go to top of page