いろいろ試す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のファーム
ウェアバージョンには気を付けてくださいね。

OpenOCD小ネタ24 -ビルドするときの小ネタとかも-

もうすぐ2月ですが
あけましておめでとうございますした!

今年も皆様に役に立つ情報を提供していきますのでどうぞご贔屓に☆
なお、新しい副業先(本業は虹裏メイド)ではこのぶろぐの事は完全に隠匿している
ため「あ、こんにちはネムイさん(プークス」とかおちょくられることはないのでねむい
さんもいないさんのぱんつがみえてるイラスツとか安心して公開
…とかは多分しませんので他の方が学校や職場から見ても問題ないような
記事の充実をしていこうと思います。あとdropboxの画像の復旧がむばります…。



本題に入りますが2019年最初のOpenOCDバイナリ最新版も公開しております。
皆様どしどし使ってください☆




●OpenOCDビルドするときにJIM-TCLの所でコケる対策

昨年10月くらいのアップデートからMSYS環境下でOpenOCDをビルドする際に下記の
変なメッセージを出してJIM-TCLのコードがclone出来ずOpenOCDのビルドが先に進ま
ないという問題にぶち当たりました。

fatal: unable to access 'https://repo.or.cz/r/jimtcl.git/': SSL certificate problem: unable to get local issuer certificate


なんでや…これでOpenOCDのgerritにもパッチあげられてるのに…
仕方ないのでいろいろ調べていると回避方法が見つかりました!
git config --global http.sslVerify false

"http.sslVerify false"でぐぐるとメジャーな問題だったようでねむいさんのアンテナ
の低さに自分自身で情けなくなってしまいましたorz
ねむいさんのOpenOCDぱっち詰め合わせの中にあるビルドスクリプトにも上記の対策と
ついでに64ビットOS環境下でMSYSを動かしたときに動きが鈍くなる対策も突っ込んで
降りますのでご参考に(openocd_update_s_libftdi参照)。

●libusbもアップデートしてるが…

1.0系が完全に定着したlibusbですが現在も時々刻々と機能追加や修正がくわえられて
アップデートし続けております。linux系OSでもWin系OSでもビルドできるようにgitで
ソースコートが管理しておりますがたまに特定のOS環境下でしか確認せずにエンバグ
された状態でマージしやがるやつがいます####(OpenOCDでも度々見られますが…)
これの修正は強烈でした。この修正が入った以降のコミットでビルドされたdllを使用
したら問答無用で落ちますorz
追加されたlibusb_wrap_sys_device関数のおかげでdll召喚した瞬間にお陀仏ですorz

仕方がないのでlibusb_wrap_sys_deviceのファンクションコール(Windows系OSでは
使用されていない模様)をまるまる削ったdllで事なきを得ております。
ねむいさんの公開しているOpenOCDバイナリにもこの修正がかかったlibusbのdllを
使用しておりますので安心してご使用できます☆

20190131追:
やっと直りました…F++K!



●壺の件

LPC800系のOpenOCDのパッチは、先にねむいさんが提出したnumicroのパッチがマージ
されたら提出しますのでそれまではねむいさんのOpenOCDバイナリを使用して頂きたく
思います。でもNxPのマイコンをわざわざSTLinkで使う物好きな人とかあんまりいな
いので殆どの人はこのバグに気づいていないでしょう〜

全部こいつのせいだ〜!ねむいさんはわるくないぞ〜!

●ブレークポイントで止まらねぇ!

OpenOCDのCPUコアに近い場所にパッチが当たった場合その影響がたいぶ後になって
気づくことが多々あります。
ねむいさんの提供しているSTM32F7向けのOpenOCD用cfgファイルはQSPIフラッシュが
ついてない基板でも動作できるように"gdb_memory_map disable"というオプションを
着けておりました。しかしながらそれのせいでコアにパッチがあてられたあたりから
ブレークポイントで止まらず特にmainの先頭とかで止まらずまともにデバッグが
できなくなってしまいましたorzまたですか…☠

ねむいさんの提供しているcfgは内蔵フラッシュからの起動/デバッグを想定している
ので対策は一応あります。cfg内で"gdb_memory_map disable"を記述した直後に下記の
一文を追加するとブレークポイントを貼った場所に止まることができるようになります。
"gdb_breakpoint_override hard"

多分RAM起動だと副作用でまくると思いますがフラッシュの書き込み耐用回数が増加
した現在ではそういう運用することはあんまりないので大丈夫とは思います。
また、正式には未だマージされていないQSPIのフラッシュ対応(XIP:直接実行)も配慮
した今回の修正なので、もし正式にQSPI対応になったら本腰入れて動作検証を重ねて
行こうと思います。

いろいろ試す36

今年は本当に波乱に満ちた年でしたね…
それでも月一ペースで何が何でも記事を更新できた私をほめてあげたい(自画自賛


●4GBのマルチメディアカードをついに入手!…しかし…

流通在庫が高すぎて敬遠していたのですがebayで新個品が放出されたタイミングを
見逃さなかった!!!!!Transcend製の4GBもあるMMC「TS4GMMC4」です!



同じトラ製のSDHCカードと比べてみました。


当たり前ですがねむいさんのSTM32F7のいつものでしっかり認識します。

カード情報も拾ってみました

FatFs module test terminal for STM32F769NIH6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Sep 30 2018
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 17609 kB/sec.
>fs
FAT type = FAT32
Bytes/Cluster = 32768
Number of FATs = 2
Root DIR entries = 0
Sectors/FAT = 960
Number of clusters = 122752
Volume start (lba) = 8192
FAT start (lba) = 14464
DIR start (lba,clustor) = 2
Data start (lba) = 16384

Volume name is TS4GMMC4
Volume S/N is 9FB2-841B
...
1 files, 132949600 bytes.
0 folders.
3928064 KiB total disk space.
3797920 KiB available.
>ds 0
rc=0
Drive size: 7872512 sectors
Erase block size: 512 sectors
Default r/w block size: 2048 bytes
Card type: MMC(Byte)
CSD:
00000000 90 2F 00 2A 1F 5B 83 C0 F6 DB BF FF 96 C0 00 1D ./.*.[..........
CID:
00000000 1E FF FF 4D 4D 43 20 20 20 10 00 00 02 2E BD 73 ...MMC ......s

Parsing MMC CID Register
Manufacturer ID :0x1E
OEM/Application ID :
Product Name :MMC
Product Rev :1.0
Serial Number :0x0000022E
DateCode.Month :11
DateCode.Year :2010

Detected as MMCv4.1 Device!
OCR:
00000000 80 FF 80 00 ....
>

今から8年前に造られた最後の方のロットのMMCですね〜


ebayの新古品は2000円近辺で購入できるので例のSDライセンス問題も全く心配なく
ホビーで使いまくれると思います!

…と思ったのですが!!!

なんとこのMMC、MMCv4.1なのですが今日びのSDカードですら存在するSPI互換モードが
存在しない
ためマイコンの工作でSPIで手軽に使用することが一切できませんorz

上で認識してたのはSTM32F7のSDMMCからMMCネイティブモードで叩いたのでさくっと
動いて見えたのですが…皆さんご注意ください。SPI互換モードが存在しないのは
4GB品だけで2GB以下の品種はちゃんとSPIでも動きます…。


外人さんも嘆いている
ちょうどeMMCへの過渡期だったので4GB品の製造の際に遅いSPIモードがオミットされて
しまったのでしょう…まぁ電子工作で4GBも使うって早早ないから2GBでも十分じゃ
ないかな〜…うっかりSDカードが動いてしまうこともありますし

というわけで古のデバイスにも癖があったというおはなしでした!



●サポート止めたプロジェクトをメンテしてみた

3年前に更新停止したLPC2388のプロジェクトとかを最新のFatFsとかにあてがって
みました。arm-gccは表向きはcortex-mのサポートとうたっていますが昔のARM7TDMI
とかも余裕でビルドできます。
OpenOCDの書き込み・デバッグも順調です☆


あとLPC2388はUSBデバイス機能があってMSCやCDCなんかができるんですけどたとえば
CDCでは現在ではzadigを使用して汎用のCDCドライバをあてがうことができるので
格段に使い勝手が上がってます!まぁあえてLPC2388を使っていく意味も今となっては
有りませんが余興ということで



そしてMicrochipになってしまったATMEL製のXMEGAもFatFsの最新版(0.13c(patch1))を
あてがって動作確認できました。
コード効率が悪い上に容量も128kbしかないのでexFATはおろかLFNすら乗っけられま
せんがまぁ余興と(ry

ちなみにAVRToolchainは数年前に更新しなくなりましたが有志の方がavr-gccのツール
チェインを更新し続けている
ためほぼ同じ感覚でgccビルドができます。


avr-gccを使う上で注意すべき点はavr-size.exeがAVRのフォーマットが使えず、
汎用の動作しかしないのでFLASH/RAMの容量は自ら管理しなくてはいけません。
まぁここもARMマイコンいじるさいはリンカスクリプト自前で起こす必要あって
皆さん経験済みなので問題ないでしょう。


avrdudeも更新停止したと思ていたらさりげなく更新してたので久しぶりにビルド
しました。おきぱにあるのでどしどしご利用ください!
また、avr-gccにはavrdude.exeが同梱されてますがかなり古いのでavr-gccとねむい
さんのavrdude
を組み合わせて使う際はバッティングにご注意ください。

同時にUrJTAGflashromも微妙に更新がかかっていたのでビルドし直しました。
ビルドに当たってはOpenOCDも含めてMinGW-w64 GCC8.1.0を使用してますのでビルド
環境もアップデートしております!


●arm-gccの新しい奴が出た!
例年年末に出るやつがやっと来ました
今回の変更点はGCCのバージョンがついに8になったところです!
さっそく導入してみました!



ナニコレ…ihexで出力できない…
64-bit address 0x4b4fa300000000 out of range for Intel Hex file
ってなんなんだYO!
arm-none-eabi-objcopyバグってる…?


調べてみると同じ症状に遭遇された方がいました。どうやらarm-gccの新しい奴にある
objcopyにバグがあり、IntelHEXフォーマットの出力ができないようですorz

対処法はどうしても新しいarm-gcc使いたい場合はarm-none-eabi-objcopy.exeだけ
一個前のverに差し替えるだけでおkです。
こんな基本的なところでエンバグするの止めてくださいよ〜!
※バグじゃなくてオプションのつけ方悪いだけならご指摘願います


20190131追:
公式も認めました!!





●転職しました
読んで字の通りでございます。
2012年から長きにわたる派遣ジプシー生活からようやく解放されて正社員になれたん
やなぁ…って

あまり詳しいことはお伝えできませんが正社員への転職に当たっては最初は自力で
転職サイトとかに登録して活動しておりましたが有効求人倍率が1倍を上回る状況
にもかかわらず年齢的にも経験的にも箸にも棒にも引っかからず全く太刀打ちでき
ませんでした。

しかしながら存在は知っていたものの興味が無かった転職エージェントを利用した
ことで状況は大きく変わり、そこそこの待遇で内定をたくさんいただくようになり
その中で納得がいく会社に2018年内に無事就職する運びとなり、今も頑張っています。

この時利用したエージェントさんですが""ではじまる名前と""ではじまる名前の
二社で進めていき両社とも技術系に特化した所でしたので私の適正に近い会社様を
すぐに紹介していただけました。リクルートとかエン転職とか有名どころですが
某魔法少女より「それらは避けよ」と事前に忠告されていたため、ちょっとマイナー
ですが""と""ではじまるところにお世話になった次第でございます。

ちなみに両者のエージェントさnより口をそろえてほぼ同じ内容を説教されましたが
あなたのブログは選考者に対して大きなマイナスの印象を与えるので紹介しては
 いけませんよ」って言われてもちろんgithubもそこからブログにたどり着けちゃう
ので当然ダメでそれらの要素省いた出がらしみたいなスキルシート作るのが一番
精神的に辛かったのですがたぶん自力でやってた頃あっさりbanされまくってたのって
これが原因かなと思ってたのですがねむいさん面白い記事書けるよう務めてきたはず
ですが、いないさんのちょっとぱんつみえてるイラスツとか至って健全で普通なのに何故だ(錯乱

20190407追:
ねむいさんのぶろぐがスラドに!!!
マジレスしますと私のぶろぐ記事から読み取れる私の技術的能力・文章作成能力は
ありものを組み合わせて動いたつもり分かったつもりの素人レベル」でこいつに
プロとしての仕事はできないと判断下され採用に至らなかったからですがorz
エージェントさんより指導入りまくった実務経歴の方はしっかりと評価していただけた
会社様が多かったので私がダメだっただけでホントに個別論ですね個別論♨
↑苦しい突っ込み入れられたら個別論で茶を濁して逃げるの私何度もやらかしそうです





●ねむいさんFAQ
Q:昔のぶろぐ記事でdropboxの見えなくなった画像早く復旧してください
A:ぇっと…
  今年は大事なことにたくさんエネルギー使っちゃったので
  
  来年からがむばります!

Go to top of page