OpenOCD小ネタ25 -STM32F746G-Discoveryでステップ実行が上手くできない件-

令和明けましておめでとうございます。
今年は明けましておめでとうが2回もあった年なわけですが新元号明けたとたんに
景気が悪くなりだしてヤッパつれぇわ
…ってダジャレ言いたかっただけです。




さてOpenOCDも地味に着々と更新が加わっておりますが4月頭にCortex-M7初期
リビジョンでデバッグのステップ実行時に強制的に割り込みでブレークがかかる
という難儀なエラッタ
に対する回避策が講じられた模様でねむいさんもさっそく
試してみることにしました。

STM32F746G-Discvoeryがそのエラッタ持ちのシリコンのSTM32F7の品種なので
これで実験してみます。


無対策の場合では私のプログラムの場合、ステップ実行で最初のprintf関数まで
実行したら強制的にUARTのIRQに飛んで行ってしまいます。これが上記のバグ
の具体的な影響となります。現在のOpenOCDではこれに対して強制的にブレークが
掛からないようにする回避策の修正を加えられています。はずです!


回避策の使い方はopenocdの起動時のコマンド引数若しくは起動時に読み込むcfg
ファイルに"cortex_m maskisr steponly"を沿えるだけとなっております。
しかし、cortex_mコマンドはSTLink等のHLAでは使用不可能な固有コマンドです…
STM32F746G-DiscvoeryはSTLink/V2一体型…orz


そんなわけで改造してみます。SWDがつながっているジャンパ抵抗を外し外に引きだ
しができるようにします。
今回使用する外部のデバッガアダプタはJ-Linkに化かしたLPC-Link2です。


それでは開始…!

ぁれ…またUARTのIRQで止まってる…orz

いろいろ調べましたがstepi(=アセンブラの1命令単位のステップ実行)は問題ない
ようでしたが、C言語ソースレベルのやつ(=step)が駄目orz



というわけで私のいつものでSTM32F746G-Discoveryを使う際はUARTを割り込み
なしのポーリングの設定(uart_support.h参照)に替えてデバッグしていただきたく
思います…!

近畿自然歩道を往く −平成最後の熊野古道詣で‐

平成がついに終わり新元号令和が降臨しますね…
そして熊野古道伊勢路も着々と確実に新宮に近づいてまいります…!



●2019.03.30 近畿自然歩道(船津〜尾鷲)


虹裏メイドの朝はちょっと遅い。
近鉄ではるばる松阪までそして紀勢線に乗り換え船津へ…!


やっと紀伊長島に…なぜか電車は小休止し
ここで痛恨の30分休憩に…



ぁー長旅つかれた!今回はこれにて終了!



そんなわけで12時前にやっとこ船津駅からスタートです!



道路わきにはすでに満開になっている桜がお出迎えです☆
天気も良くなってくれるとよいのですが…!?


このあたりは種まき権兵衛なる人のゆかりの地だそうで…



桜の花見てて飽きませんね〜♥
でも今回のタイムリミットは14:25、急がなくてはいけません!


どこにでもあるカッパ…


おっ、日が出てきた!


相賀駅に近い相賀神社です。



はまぐり石なるものがある真興寺です。
カナブンさんちょっと無理しすぎです


うおーもっと晴れろ―!


よせばいいに種まき権兵衛の里に寄り道する私(死亡フラグ)


銚子川です。滅茶苦茶きれいで奇跡の川と言われています。


種まき権兵衛の菩提寺宝泉寺です。





すっかり晴れ渡り桜の花が冴えるようになってきました♥



ねむいさん発掘石畳なるものを捜索していたのですが
頭がパーンな教団の建物のわきに石畳道が隠されていました!
下から探したら見つからなかったらもういい加減にしろって感じだよ(CV:久本雅美)



さてついに当時のメインの馬越峠の攻略にかかります!
世界遺産に指定され、完璧に整備されております。



昔から使用されてきた石畳道が良い雰囲気ですね〜



途中小川や林道をクロスしていきます。




ほどなくして馬越峠に到着です…!
こちらは便石山や天狗倉山への中継地点となっています。




そして一気に下りにかかります…!
下りの石は滑りやすくて超注意です!



尾鷲側の登り口まで降りてきました。
行者堂や滝もあります。



さらに降りていくと道が開け尾鷲の町が見てきます。



結構高い場所に津波供養碑があります。
あちこちに津波の避難路もあり津波対策は近年さらに強化されているようです。



北川を横切ります。


次は八鬼山(やきやま)。一か月後に再び来るでしょう。


尾鷲駅に到着です!しかし交通費節約で尾鷲からバスで帰るつもりでしたが…
乗る場所勘違いして思いくそ乗り過ごしたorz




仕方がないので先回りして船津駅で降りて近くのバス停でバスを待ちかまえますorz
それでも交通費滅茶苦茶圧縮できるので〜!



蛭子さんも真っ青の長距離路線バス旅…
途中の奥伊勢おおだいで地元の名産をゲッツです!


ようやく松阪につきました…まだ京都まであるんですけど
天気が崩れ始めましたがトレランしている時だけ晴れてくれてマジ奇跡でしたね…!






●2019.04.27 近畿自然歩道(尾鷲〜三木里)




前線基地松阪駅で空腹に耐えかね買ってしまった…
そして長旅へ…


前回は在来線乗ったせいで足止め喰らいましたが特急南紀なら大丈夫…
と思いきやこいつも紀伊長島で10分休憩!!!すざけんあ!1!!11


今回は海抜0mから622mまで登る結構しんどいルート!
しかもリミットは14:20くらい!いそ意でスタートです!1!!




序盤は尾鷲の町をかいくぐります。
この地域の熊野古道はやのはま道と呼ばれているようです。



入り組んでるので間違えないように注意していましたが
やっぱりルートミスしたorz地図読みを駆使して復帰にかかりますorz



道標歌碑のある場所でようやく正規ルートと合流しました。


石油プラントを横目にアスファルト道を上ると八鬼山登山口が見えてきます。


さぁのぼりの開始だ!
視界も開けていい雰囲気ですね〜ソーラーパネル以外は###


道は森に突入し石畳道が出迎えてくれます。



途中で説明看板がありますが、ゴットン岩が有名らしいです。
確かにゴトゴト言います。



道はだんだん急になっていきますが雰囲気の良い石畳道で飽きさせません。



七曲りという場所からきつくなってきます。でもここを越えたら頂上までわずかです。


桜茶屋一里塚です。


蓮華石と烏帽子石です。
こんな感じで町石や史跡がたくさんあります。



九鬼峠です。
こっから三宝荒神に向かいます。



八鬼山三宝荒神です。



八鬼山峠に到着です。
実質上の頂上となります☆


八鬼山峠のごく近くに八鬼山頂上が隠されています。



八鬼山峠から少しくだった桜の広場なるばしょは
壮大な熊野灘が一望できます!!!
これはすごい…!



ですがあんまり居座る時間はなくそそくさと降りていきます。
いそげ〜〜!



降りてきたみちは江戸道ですが未整備の明治道と再合流した時点で
ほぼ登山道は終わりとなります。



道は林道になり名柄一里塚を越えると走りやすい道に変わります。


振り返って八鬼山を…いずれまた来るでしょう…!



そしてさらに駆け下りて海抜0mの三木里海岸に…!
ここも白浜の白良浜並みに超綺麗な海岸が続いています…!!!!


ですが長居するわけには (ry
あと10分…いそげ〜〜!



はぁはぁ…何とか時間までに三木里駅につきました…
ちなみに電車は2分遅れてました…



そしてまたバスで帰るためにJRで先回りです…!
またまた船津で降りて着替えをしてバス亭に向かいます。


熊野市までは三重交通の株主優待拳が有効なので使い倒しますよぅ〜!



今回の奥伊勢おおだいはおにぎりとおつまみと和紅茶です!



そして松阪に…いつもの牛さんできっちり締めて
帰りの近鉄でおおだいで買ったチーズかまぼこを堪能しました…写真は酒ですがー!


というわけで平成最後のトレランと桜めぐりと熊野古道詣でを〆ました。
令和になっても(交通費稼いで)バリバリ攻略していきますので4649!

近畿自然歩道(船津〜尾鷲) GPSログ


近畿自然歩道(尾鷲〜三木里) GPSログ


いろいろ試す37 -平成最後の更新…か!?-

このぶろぐエントリを書こうとして気づいたんですが新元号は4月1日公表で施行は
5月1日なんですよね…平成最後のぶろぐ更新は来月ですね…あぶないあぶない…
さて、

●A2規格のマイクロSDカードゲッツ


チマチマ書きに高いパフォーマンスを見せるらしいSandisk製のA2規格のmicroSDカード
SDSQXCY-064G-GN6MAです!!!(って買ったの去年の10月で今頃紹介ですが…)


カードの表裏はこんな感じです。A2ロゴがかっこいいですね!

早速ベンチをとって見ました。
事前にSDFormatterでexFATでフォーマットしております。

ほう…A1のカードはどうでしたっけ…



A1ってランダムライトが糞遅くて過去のExtremeと比べてもあんまし
使えない感じでしたがちょっと微妙ですね…
↑A2規格で新設されたキューイングとかに対応したSDホストじゃないと本来の
 力発揮できないそうですorz

恒例のSDの情報を抜き出してみました。

FatFs module test terminal for STM32F769NIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Sep 9 2018
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 18051 kB/sec.
>fs
FAT type = exFAT
Bytes/Cluster = 131072
Number of FATs = 1
Root DIR entries = 14450
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 SQXCY_064G
Volume S/N is 3BBB-87AE
...
1 files, 132949600 bytes.
0 folders.
62334976 KiB total disk space.
62204160 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 52 36 34 47 80 24 74 BC C8 01 28 FB .SDSR64G.$t...(.

Parsing SD CID Register
Manufacturer ID :0x3
OEM/Application ID :SD
Product Name :SR64G
Product HwRev :8
Product SwRev :0
Serial Number :0x2474BCC8
DateCode.Month :8
DateCode.Year :2018

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.

SDSpecはV6となっていて2018年の8月製!当時は
出来たてのホヤホヤをゲッツしていたようですね。



●64GBのサンディスクの産業用のマイクロSDカードもゲッツ




ねむいさんが大阪に降りたときに日本橋のPCワンズという店に寄るのですが、なんと
64GB版の第3世代サンディスクの産業用のマイクロSDカードが販売しておりました!
値段も3,690円とリーズナブルで容量も十分です!


UHS-1なのでシーケンシャルでも超早いです!
…あれ?これA2のやつよりRead性能いいじゃないですか…
もう普段使いのmicroSDもこいつでいいんじゃないかな。

こちらもSDの情報を読み取って見ました。
FatFs module test terminal for STM32F769NIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Feb 19 2019
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 19989 kB/sec.
>fs
FAT type = exFAT
Bytes/Cluster = 131072
Number of FATs = 1
Root DIR entries = 14448
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 SDQAF3_064G
Volume S/N is 4415-38F9
...
1 files, 132949600 bytes.
0 folders.
62334976 KiB total disk space.
62204544 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 5B 59 00 01 DB D3 7F 80 0A 40 40 DF @..2[Y.......@@.
CID:
00000000 03 53 44 53 41 36 34 47 80 EC 76 CD 3E 01 26 83 .SDSA64G..v.>.&.

Parsing SD CID Register
Manufacturer ID :0x3
OEM/Application ID :SD
Product Name :SA64G
Product HwRev :8
Product SwRev :0
Serial Number :0xEC76CD3E
DateCode.Month :6
DateCode.Year :2018

OCR:
00000000 C1 FF 80 00 ....
SD Status:
00000000 80 00 00 00 08 00 00 00 04 00 90 00 0F 05 1A 0A ................
00000010 00 08 00 00 00 00 00 00 00 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 43 00 00 00 00 .E.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.
>

SDSpecはV5ですがこちらも2018年製ですね!
もちろん第3世代カードなので当たり前のようにSMARTが獲れます!
こちらに読みだしたSMARTのデータを置いておきますのでご参考に。


シーケンシャル読み書きもそれなりに速度出てて値段もお手頃なので業務用/ドラレコ
向けは勿論普段使いでデータの信頼性が欲しいなんて時にもお勧めです。
価格と性能を求める欲張りな貴女にぴったりかも!?


●定例のソースコード更新の件

ねむいさんが管理しているChaN師のFatFsの移植例いつものの月例更新です。
boochowさんよりコメントいただきました通りねむいさんのプロジェクトは大文字
小文字が統一されて無くてlinux系OSでは途中でエラーになっていましたが今回から
ちゃんと整合性が出るようにmakefileを更新しました。
その中でUppercaseをLowercaseに替えるシェルコマンドがwindows環境下で上手く
動かないことがわかり↓のような結構見苦しい自前コマンドで逃げてます…。
# Exchange Uppercase into Lowercase
#MPU_MODEL_LOWER = $(shell echo $(MPU_MODEL) | tr A-Z a-z)
lc_jimae = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))
MPU_MODEL_LOWER = $(call lc_jimae,$(MPU_MODEL))

だれかねむいさんの環境構築法でもっとスマートにできる方法あったら教えてくだち。

そんでもってCMSISv5もgithubの変更を即反映して更新しておりますが、なんでか
これの更新から一部のCMSISヘッダファイルがバージョンダウン(しかも数字だけ)しや
がっておりますので今回からV5.2.1とかの細かい更新はwhatnew.txtに書かないように
しました…理由も書かずにしれっとこういう書き換えするのマジやめて。



●もう少しで10周年やん

やばい…四月になったらこのぶろぐ10年目だ…

よくよく考えたらARMマイコンの環境構築とChanN師のFatFsの移植から先にほとんど
技術的に進んでない…10年も経ってるのに…




来年度からがむばります!!!!!!!!!

STM32F7Cube更新そのほか

●STM32F7Cubeが1.15.0になった
世に出てからはや数年が経過したSTM32F7ですが現在もSTM32F7Cubeライブラリ
更新は精力的に続いております。



前々から挙がっていたクレーm…要望にやっとこ対応できたのかダウンロードサイト
見たら前バージョンも落とせる仕様となっていましたね(やっとかYO!


それと昨年のFacebook等のSNSの勝手に情報収集問題からかサイトを開くといちいち
「クッキー取得するかんな!了承しないとサイト見せないぞ!」っていうウインドウ
が開くようになりやがりました###STに限らずほかのサイトでもこういう風潮が
増えていますが正直うざったいですね…#

話を戻しますが前バージョンが落とせる仕様に変わったのは2月以降に更新が入った
Cubeライブラリのみのようです更新してない奴はそれっきりorz


ボヤキはこの辺にして主な変更は暗号化関連のコードが大変更になったようです
ねむいさん暗号化は使ってないのでほぼ影響ありませんが
それと今までEXTI(外部入力&イベントコントローラ)のHALってなかったのか…!?
LL(ローレベル)ライブラリ版は昔からあったようですが…
あんま使ってない機能だからまぁいいか‥



ChaN氏のFatFs0.13c最新パッチ版を適用して無事動作しております。
静止画なのでわかりづらいですがgifライブラリも3年ぶりに更新したのでばっちり
適用しております☆


というわけで最新のライブラリや修正を盛り込んだ私のFatFs移植例"いつもの"
更新しておきぱに置いておりますのでどしどしご利用ください☆

もちろんSTM32F4のいつものも更新済みです!

ついでにSTM32F4Cubeも更新が入ってましたのでF4Nucleo用のプロジェクトも更新
しております!こちらもよろしく!


●STLinkのファームウエア更新

ついにV3とかも出てきておりますがSTLinkのファームウエアも続々進化しております。


M33になってMassStorageも使えるmbedファームと従来のSTLink+VCPのファームも使用
可能となってます☆
しかし…


新ファームだとOpenOCD使うとL0に書けないorz


ST謹製のCubeProgrammerからなら書けます…ファック!!!


M32のファームならOpenOCDでも大丈夫です。
おそらく修正が入るでしょうがSTM32L0シリーズ使ってる人はSTLink/2のファーム
ウェアバージョンには気を付けてくださいね。

Go to top of page