STM32F7を使ってみる14 -HS ULPIでUSB-MSCを使ってみる-

みなさまあけましておめでとうございます

今年もねむいさんほか虹裏メイドたちをごひいきにm( )m
今年はねむいさんのイラストが100枚くらい増えますように
↑本音




さて新年早々ですがHALライブラリにバグを見つけたので解説しようと思います。

遡る事約一ヶ月前、ねむいさんはSTM32F7で新しい事をやろうとCubeF7に同梱されて
いるUSBライブラリとそのExamplesたちに手をつけ始めていました。
STM32F746G-DiscoveryにはULPIとかついているのでUSB-MSC(MassStorageClass)の
実装を試みました。もちろんUSBのバス速度はHighSpeed(480Mbps)です。

幸いにもSTM32F746G-Discovery向けのサンプルコードもあったのでそれをねむいさん
謹製のいつものをベースに実装しようとしましたがUSBライブラリがDMA使ってるくせに
キャッシュの事全然考えてない作りでそれにブチ切れながらGCC向けに移植していまし
たが最終的にL1キャッシュがないと足を引っ張るSRAM1,SRAM2を使わずにノーウエイト
でアクセス出来るDTCM領域だけでがんばることにしました・・・orz

Ac6STM32用のプロジェクトファイルのリンカスクリプトもそうなってますし・・・フォーラムでも
奇跡の積み重ねで動いてると情けない指摘をされています。
HALライブラリみたいなバグだらけの変なものリリースしっ放しにしてないできっちり
バグつぶせYO!←って言ったらたくさん非難されていっぱい哀しい…


と言いつつも何とか動いて認識しました♥


もちろんeMMCとかもしっかり認識しちゃいます★


とおもったらまだ問題がありました…幾つかのカードでデータが正常に読み込めない
事がありました。


64GBのカードでも容量はしっかり見えてるんですけどね…なんか4GB以上データを詰め
てるカードで動作がへんなのです…

…4GB…?これって…

かつてUSB付きのARMマイコンでMSCのサンプルではカード容量を示す変数が
uint32_tで現わされていて4GB以上の容量を正しく表示できないという4GB問題が
ありました。対策は単純に容量を示す変数をuint32_tからuint64_tへ変えるだけの
ものなのですがUSBライブラリを見る限りではそれはちゃんと64ビット変数に
なっており問題がありませんでした。


しかしブロックアドレスにブロック容量を掛け算し代入してやがる式を見つけました。
指定するブロックアドレスによってはuint32_tで扱える範囲を超えてしまう可能性
があります。このscsi_blk_addrって奴なのですがまさか…まさか…


デデーン

思いっきりuint32_tじゃん…

ば っ か じ ゃ ね ぇ の ! ?
ねむいさんのむなしい叫び越えが夜の闇にこだまする。


ていうわけでscsi_blk_addrをuint64_t化すると4GB以上データ詰めている奴でも正常に
読み書きすることができるようになりました…なんちゅう初歩的な。

一応フォーラムにも報告しておきましたがSTM32フォーラムのguruとも呼ばれている
clive師より「ブロックアドレスをいれた変数にバイトアドレスに変換した値を放り
込むSTの昔っからのコーディング姿勢自体が愚。scsi_blk_addrの安易な64bit化は
不必要」と指摘されましたがねむいさんもごもっともだと思いました。



そんなわけで漸く正常に繋がるようになったので読み込み比較です。今回はUSBの
転送用に確保していると思われるバッファの容量を増やすことで転送スピードが
どこまで変わるか見てみました。


条件STM32F746G-Diacovery,USB-HS ULPI,最適化オプションは"-s"
132MBのmp3ファイルをFastcopyを使ってPCのRAMDISKへコピーする時の平均転送速度を記録。
SDのクロックはNS(24MHz)とHS(48MHz)で比較。


ある程度分かっていたことですがやはり容量を増やしていくと転送スピードは上がっ
ていきましたがある程度(16kb以上)以上で転送スピードは横ばいになることが分
かりました。これはNSとHSもほぼ同様の傾向なので16384byte以上パケット容量確保
してもそれ以上は余り効果がないことが分かります。まぁこれだけ速度出せたら御の
字でしょう。とにかく16384byte分確保しておけば何の問題もないですね。


ちなみに今回はお仕着せEclipse環境のAC6STM32で一旦プロジェクトをビルドして
ねむいさん環境に移植しましたが(単にリンカスクリプトをDTCMしか使わないように
しただけですけど)もっと性能の高いF769I-Discoveryで何で試さなかったの?と言う
話になるでしょうけど理由が…


CPUが対応してない・・・このせいでボード対応しててもビルドが通らないorz



やっぱ自分でmakefile書いてコマンドラインビルドが最強ですって☆

いろいろ試す27

ああ・・・2016年が終わってしまう・・・
今年は年始から本業副業合わせてやばい系のばっかリに絡まれまくりましたよぅ
(※本業は虹裏メイド)

●OpenOCDがビルドできなくなる
これホントはOpenOCD小ネタ扱いですけど小過ぎてここでやります。
12月上旬の更新で"Convert to non-recursive make"という更新が掛かりそれに伴って
Automakeのバージョンもあげる必要性が出てきました。
しかしmsysのビルド済みバイナリは数年前に更新停止ししていて結局全部一からビルド
するハメに!!ねむいさんの環境では結局以下の3点の最新化が必要でした。
・automake-1.15
・pkg-config-0.29.1
・libtool-2.4.6


これでOpenOCDをはじめ他のライブラリやライタプログラムにも悪影響がないを確認
しましたので当面は大丈夫だと思います☆
・・・また数年したらこう言う相違の問題出てくるんだろうなと考えると気が重いです。


●DropBoxがPublicフォルダを廃止し強制的にプライベート化する
ねむいさんのぶろぐの画像保管庫として機能しているDropboxからメールがあり、来年
3月15日でPublicフォルダ(有料ユーザーも7月15日で)強制廃止するよ!というふざけた
内容の文章が来やがりました#########

Publicフォルダというのは直リンクが可能なDropboxの特殊フォルダで、ぶろぐで画像
サーバとして使うのにはうってつけだったのですが・・・便利ゆえに児童ポルノなどの
やり取りに頻繁に使われまくったせいか規制されてしまったようですクソァ!!!
公式の掲示板でも異を唱えたまっとうな使い方をしている人たち(有料ユーザー含む)が
いましたが粛々と無言で粛清されていくさまを目の当たりにしねむいさんは今後の
画像置き場とにかくどうするかしらと悩んでおりました。
と、そこにとある方のツイートによって一手間掛かりますけど直リンが可能な方法が
あるのが分かり今後はそちらの方法でDropboxを使い続けることにしました。
(やはり真姫ちゃんは有能・・・)

ねむいさん的な使い方はCarotDAVと連動して使う方法で行きます。

まずCarotDAVを使って前もってDropBoxの非共有の個人フォルダにアップロードします。
ここで共有化したいファイルをドラッグして選択し右クリックで"Create Shared Link"
を選びます。確認ダイヤログでOKを押して少し待つと共有リンクのURLがずらずらっ
と出てきます。

あとは末尾の"?dl=0"の部分を"?raw=1"に変えれば以前と同じ感覚でぶろぐに画像
として表示が出来るようになります。CarotDAVではこのように一括で共有リングが
作成できるのでねむいさん的使い方する方にとってもオススメです!

ただ方法は純粋な直リンではなく一旦エンコードを噛ましています。そのせいで今度は
FaceBookに自分のぶろぐを紹介する時にOGPがエラーとなって弾かれてしまいました。
こちらですが現在はぶろぐのヘッダに以下のメタタグを埋め込み固定の画像を拾わ
せるようにして対処してます。↓こんな奴です。




FaceBookからはこう言う風に見えます。


とりあえずこれでPublicフォルダ廃止後の新規ぶろぐエントリの画像問題は解消され
ましたが・・・問題は過去5年間、数千枚に及ぶ大量の画像のURLの変更だ・・・
orz


●Naverまとめの所業に憤慨す
現在Naverをはじめ、「キュレーション」なる単語で言葉を濁し実際は無断転載でコンテ
ンツをパクり広告収入で儲けるという企業の行為が社会的な問題となっております。

猫にコ・ン・バ・ン・ワ」の管理者のたま吉さんが自身の記事をNaverまとめに無断
転載されていたことで大変怒っておられ、その顛末を記事にされております
私もそれを受けてパクられてないか調べてみると私もやっぱりパクられてました。
しかも直接関係ない別の人の記事に私の画像が添付されてます!!!!!!!


パク

ラレ
パクられた箇所の一部をトレパクスレ風にやってみました★

超めどいですが年の瀬も迫る中早速Naverに攻勢を仕掛けました。南朝鮮企業のNaverが
普通の言伝で簡単に削除対応するわけが無いのは分かりきっていたので、逃れられない
証拠を突きつけた上で期限内に対応しない場合は内容証明郵便を送りつけ、それでも
応じない場合は簡易訴訟を起こす手立てで親父と相談し作戦を実行しました!1!!

・・・が、ねむいさんの徹底抗戦の意思とは裏腹にNaverがあっさりぱくったことを認め
パクったと指摘した箇所を秒速全削除。一週間も掛からぬうちに勝負はついた。

SDカードの一件でみなさんご存知とは思いますがねむいさんのぶろぐでも各ライセン
シーについてはもっっっっっっっのすごく気を使うようになっており、自身が取り扱う
ぶろぐ記事や写真につきましても当ぶろぐ立ち上げ時からCreative Commonsの非商用
掲げております。そういった姿勢が相手に「こいつはやばい奴だ」と思われてすぐさま
パージする方向に傾いたのでしょう。

しかしながらNaverはその一方で冒頭のたま吉さんに対しては著作権侵害を認めておら
ず(たま吉さんはねむいさんとは比べ物にならない量をパクられているのに係わらず)
態度に一貫性がまったく見られず極めて不信感が感じられます。
「こいつらはいつもこんなもの(だからこれ以上追求するな見過ごせ)」で済ませるとたとえ
Naverまとめが今回の問題で閉鎖したとしても暖簾替えて同じことやるのは1000%確実
なので今のウチに根治しないといけませんね・・・(使命感)

というわけでこの件に関する公の発言はここで一旦〆ます・・・が、以後は裏で暗躍して
みようと思います
。これから先、もし事態が良い方向に向かったらねむいさんや他の
有志の方ががんばったおかげかもしれませんよ★




あと気になる事ですが今年に入ってから不自然な内容の質問もどきを多く伺うように
なっています。名前も「ななし」とか「匿名希望」とか適当で、なおかつ質問内容は異口
同音に「オマエが持ってる(ぶろぐに書いてない)情報あるだけゼンブヨコセ」。
で、ねむいさんも相手の質問内容や文体の癖を注意深く調べぐぐるとアマゾンアフィや
グーグルアドセンス等のアフィ大盛りのはてなorFC2orライブドア系の広告収入特化型で
技術的価値が殆ど無い内容の薄い質問者と思われるブログに行き着いたりします。

ねむいさんとしましてはねむいさんのぶろぐ上で公表した事はいくらでも"参考(←転
載じゃないよ)"してもらってもかまわないというスタンスですが直接応対する案件は
内容の如何によっては対価を頂くようにしてます(それ言ったとたんに相手の反応が
いつもゼEROになっちゃうんですけど)

んでもってねむいさんもだいぶ痛い目にあってきましたので聞いてくる人の素性は必ず
調べてから対応するようにしています。それでもねむいさんを利用してやろうと考えて
らっしゃる傾き者は伊達にしてお帰ししますので覚悟するでござる(若先生風に)


●Launchpad ARM-GCCの各種バイナリがARM本家預かりになる!
今期のアップデートからLaunchpadで公開されていたARM向けGCCツールチェイン各種が
なんとARM本家から装いも新たに堂々と公開される運びになりました
ARMを買収した禿がこんな粋な計らいするわけないのでARM内の別の人たちの発案でし
ょうけど。

そしてGCCのバージョンは6.2.1にアップしております!
地味にオプション表もアップデートしていますので見逃さないように!


まずは同一条件でビルドした時のバイナリサイズ比較
新:2016q4版(GCC6.2.1)
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 6.2.1 20161205 (release) [ARM/embedded-6-branch revision 243739]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Built Informations:
USING_SYSTEM = BARE_METAL
USING_DISPLAY = USE_RK043FN48H_RGB_TFT
USING_DEVBOARD = USE_STM32746G_DISCOVERY

Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 721292 0 721292 b018c main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
718700 2592 822180 1543472 178d30 main.elf

旧:2016q3版(GCC5.4.1)
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 5.4.1 20160919 (release) [ARM/embedded-5-branch revision 240496]
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Built Informations:
USING_SYSTEM = BARE_METAL
USING_DISPLAY = USE_RK043FN48H_RGB_TFT
USING_DEVBOARD = USE_STM32746G_DISCOVERY

Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 726736 0 726736 b16d0 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
724148 2588 822188 1548924 17a27c main.elf

GCC6.2.1版のほうが5kByte近く小さくなってますね〜



お次はjpegファイルのデコード速度比較!!
ぁ・・・ちょっとだけ遅くなってる・・・
・・・
・・・
まっいっか!


ついでにProgrammers Notepad2も4年ぶりくらいにアップデートしております。
ねむいさんの環境構築手順ではほぼ影響は無いのでそのまま差し替えてお使いいた
だけますのでまだの方はアップデートしておきましょう!

20170108追:
ちゃんと新規追加されたオプションつけろよバカヤロコノヤロと突っ込みもらいましたので
付けた奴で再比較します!
1.「-mslow-flash-data」を付与
このオプションはフラッシュメモリのアクセスが遅いMCUにおいてリテラルプールを極力
行わないようにするものです。Cortes-M3/M4のみ有効でldr系の命令がmovw+movtに
なるべく置き換えられます。
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 6.2.1 20161205 (release) [ARM/embedded-6-branch revision 243739]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Built Informations:
USING_SYSTEM = BARE_METAL
USING_DISPLAY = USE_RK043FN48H_RGB_TFT
USING_DEVBOARD = USE_STM32746G_DISCOVERY

Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 727908 0 727908 b1b64 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
725316 2592 822180 1550088 17a708 main.elf
コードサイズはかなり増えてしまいました。

遅くなってるー!?ダメじゃん!
このオプションはSTM32F1/F2/F4系だと有用だったのですけどアーキが一新され、
キャッシュが追加されたM7系では相性が悪いようです。

2.「-mpure-code」を付与
前回のGCC5.4.1から追加されておりますがGCC6系から真価を発揮するそうです。
このオプションは定数値をコードセクションに置かないようにするものでリテラルプールは
当然ながら全排除、ジャンプテーブルもldrを使用しないよう徹底されます。
arm-none-eabi-gcc (GNU Tools for ARM Embedded Processors) 6.2.1 20161205 (release) [ARM/embedded-6-branch revision 243739]
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Built Informations:
USING_SYSTEM = BARE_METAL
USING_DISPLAY = USE_RK043FN48H_RGB_TFT
USING_DEVBOARD = USE_STM32746G_DISCOVERY

Built Object Informations:
=== Total Binary Size ===
text data bss dec hex filename
0 726884 0 726884 b1764 main.hex
=== Verbose ELF Size ===
text data bss dec hex filename
724292 2592 822180 1549064 17a308 main.elf
GCC5.4.1のオプション追加無しと比べると少しコードサイズが減りました。

おおっ!結構早くなってる!!!
これはイケてますね〜♥
とりあえず後方互換性の事も考えてmakefileでは"-mpure-code"はまだ無効のまま
としておきますが2017年中旬以降は積極的に有効にしていきたいと思います!
ちなみに-mslow-flash-dataと-mpure-codeを同時に有効にすると-mpure-codeが
優先的に働き-mslow-flash-dataは実質上無意味になります。



●複数スレッドでmakeのスピードアップ!
STM32F4STM32F7いつものはさまざまなライブラリが混在していてビルドしあがる
のにやたら時間がかかります。現在は複数スレッドでmakeを走らせるのでが当たり前に
なっているので私もちゃれんぢしてみました。

複数スレッドのmakeはそれに適応したmakefileの書き方をしなければならずねむい
さんのmakefileでは普通に-j2オプションつけたら最後のリンク段階でこけますorz

仕方が無いのでmakeを入れ子にしてオブジェクトが出来上がる段階まではj2でビルド
するようにしました。入れ子にする場合は「XXディレクトリから入ります出ます」のメッ
セージが鬱陶しすぎるので"--no-print-directory"オプションも付与しております。


おおっ!同時にビルドが走ってる!!



-j1と-j2の速度比較です。-j2はめっちゃ早くなってますね!
スレッド数はCPUコアの数と同じが丁度効率が良いそうですがうっかり数字をつけずに
-jとしてしまうと大変な事になってしまうので皆様試してみたください



うっかりやってしまったorz




●年末恒例ねむいさんFAQ
今年はやばいのしか来ないと言ってましたがぶろぐでも公開できないマジで
やばいのは個別に処理しましたので例年通り虹裏における活動時や当ぶろぐに
きた中から当たり障りの無い方のやばい系の質問について公開回答いたします。


Q:mbedを使っているのですが!?シリアル通信が上手く出来ないのですか!?
 これはどういうことでしょうか!?ちょうさをおねがいます(←原文ママ)!
 それと液晶プログラムを動かしたいのですがどのファイルをさしているのか!
 初心者がわかる文章で希望します!
A:無理して日本語使わなくていいから人間の言葉しゃべってください!
 mbedって!対象が増えすぎてどのmbedかわからないんですけど!
 ねむいさんに分かる文章で希望します!
 ぁれれ・・・文体が感染してしまった・・・

 まじれすしますがねむいさんArduinoとかmbedとか難しすぎてまったく
 分かりません><

 それと液晶のライブラリに関してはこちらのエントリをちょっとだけ
 補修しましたのでとりあえずお目当ての初期化の呪文にはたどり着けると
 おもいます。章仁さんにも紹介していただきました

Q:(GNUARMECLIPSEのOpenOCDバイナリを使った上で)ねむいさんのバイナリを
 使うとOpenOCDが正しく動きません。これはどういうことでしょうか?
A:・・・ろすぞ!!!
 ゲフンゲフフンすみません物騒な物言いになりましたがねむいさんがあずかり
 知らない他所ビルドのOpenOCDバイナリを使ってエラーがでてもねむいさんは
 一切対処いたしませんし助け舟も出しません。嘘言ってねむいさんと同じの
 使ってる!って言ってもすぐにバレますよ!

Q:(中華製ぱちもんJ-Link使った上で)ねむいさんのバイナリを使うとOpenOCDが
 正しく動きません。しかも弄ってるうちにJLinkが動作しなくなりました
 しっかりしてくださいよ(めっちゃえらそうな口調で)
A:・・・ろすぞ!!!!!!!!!!
 もうね、昨年からずっとだけどJ-Linkとkinetis関連は対人トラブルの元だから
 ご意見無用にしたいと思います###今はぱちもん使ってると突如brickedする
 トラップがSegger側からされてるんですけど詳細はねむいさんも言いま
 せんから!!あと詳細は言いませんけどOpenOCDでもぱちもんだと動かない
 やつあるからバレますよぅ!

Q:小生は(極めて性的な内容なので略)
 少ない年金ですがねむいさんにお小遣いくらいはあげられるとおもいます
 それではよろしく。
A:・・・(やべぇぞこれマジでやばい)
 というわけでねむいさん気持ち悪すぎて答えたくないのでこの件に関して
 年齢が近そうなねむいさんの親父からのスペシャルコメントです
 「俺の歳で再婚するなら20代の元気な女の子がいいなぁ〜」
 ねむいさんよりコメント:お母ちゃんに呪われてしまえ!!!1!!!!

Q:手軽に高収入!アフェリエイトを始めてみませんか!?
A:帰れや!!11!!!!
 この手の変な情報商材詐欺勧誘が今年に入って爆発的に増加しています!!!
 
 ・・・しまった真面目に答えてしまった。

Q:ラブライブ!の東條希さんを描いて下さい
A:ねむいさんがあんまり知らんキャラ(2016年1月上旬当時)の話を
 分かっていながらあえて無茶振りする子は
 オ シ オ キ ヤ カ ラ ♥
↑良く分からなかったのでゼERO見ながら描いた

Q:ラブライブ!サンシャイン!!の黒澤ダイヤ様を描いて下さい
A:・・・ダイ煮よ♡♡♡♡
↑なんか知らないけど別の方に私の手描きをブラッシュアップされて
  しまいました。ハートマークが敷き詰められてこれは・・・♡

  ・・・・おかわりがほしいですって!?まったく・・・貴女は本当にしかたのない娘ね♡♡♡♡

Q:ねむいさんこんにちはいつもブログを拝見させております。
 今回のねむいさんのエントリにてラブライブメチャシコ画像集なる
 とても興味を引く動画が紹介されており期待に胸と股間を膨らませて
 再生ボタンを押したのですが再生が始まったとたんに突然青色の
 ロボットが現れて尻をこっちに向けイチジク浣腸を自ら刺してで
 てきたカレーライスを何度も食しては不味いだのふざけるなだの一々
 偉そうに注文をつけて助けに来た仲間のロボットにも浣腸を刺して
 でてきたカレーライスに今度はうまいと言って満足したのが勝手に
 自爆して動画が終了してしまったのですが多分ねむいさんが想定
 していたものと違う動画でしょうか?僕は一体どうしたらいいので
 しょうか???今回は桁違いにやばいのでとか動画の中で警告
 されても今更どうしようもないじゃないですか!
A:お前は・・・イレギュラーだ・・・処分する!!

Q:オマパンとか言う気が狂った異常な概念がmayで流行ってますけど
 ああいうの喜んでワーオ!とか言ってる連中って絶対頭おかしいと思います。
A:ワーォ!





来年は本当のホントに真面目にがむばります!!!!
それでは皆様良いお年を〜

近畿自然歩道を往く(伊勢志摩めぐりその2)

昨年のダイトレ全走破に勢いをつけて今年はロングトレイルの生駒山脈縦走六甲
全山縦走
に果敢に挑んできました。
それでちょっとがんばりすぎたせいかダメージが積み重なり冷え性になってしまったので
今年の〆は昨年と同じく暖かい空気と海がある伊勢志摩に繰り出す事にしました。
私のヤマレコとか見てた方は「すでに伊勢志摩めぐりその5くらいまで逝ってるん
じゃね?」とお思いでしょうけどもこのぶろぐ上ではまだ2つめです!ややこしいですけど。

とはいえ知らない方もいるかもしれませんので一応紹介しておきます♥

近畿自然歩道(松阪〜栃原)
「城下町松阪の文化にふれるみち」(近鉄松阪駅〜松尾小学校前バス停)
「山あいの古寺と両郡橋をたずねるみち」(松尾小学校前バス停〜丹生大師前バス停)
「丹生の歴史をめぐるみち」(丹生大師前バス停〜JR栃原駅)

近畿自然歩道(伊勢市〜松下(〜鳥羽))
「お伊勢さんを感じるみち」(近鉄伊勢市駅〜近鉄朝熊駅)
「御塩づくりにふれるみち」(近鉄朝熊駅〜JR松下駅)

近畿自然歩道(安乗〜志島〜船越浜)
「安乗灯台と文楽のみち」(安乗バス停〜志島バス停)
「大王埼灯台をたずねるみち」(島茶屋バス停〜船越浜バス停)


それではスタート!

●近畿自然歩道(船越浜バス停〜浜島港(〜浜島海浜公園〜桧山路バス停))
 


虹裏メイドの朝は早い。
近鉄特急で2時間以上ゆられてさらにバスで40分くらいゆられます・・・



船越浜バス停からスタートです。
今年の夏は少し進んだところのトイレのある場所で離脱したので
ホントのスタート地点はそこですけど。



ありゃりゃ・・・いきなり路に迷った・・・
確か船越大池をこっち側から見てはいけないはずだけど・・・



なんとこの布団が干してある階段の裏の壁の死角になる部分に
道標が!!!!!F**K!


でもそんな気分を一気に押し流すほど綺麗な海がお出迎えです♥


ルートを外れてちょっと寄り道して名も無き岬に向かいました。



・・・
美しい・・・♥



ルート上はこの小山を乗り越えるのですがどこにもルートが無い・・・
探しまくって日蓮宗の海難供養碑がある場所の藪の中に正式な
ルートを見っけました・・・これ夏だと絶対わかりませんてば!



!!!!!!!
確かに堕ちたら即死亡の超危険な崖でした・・・


それを乗り越えると退治岬の見に灯台があります。



冬なのに草ぼうぼうのトレイルを抜け、引っ付き虫だらけになった格好で
深谷水道を越えて車道をひた走ります。


片田稲荷神社を見送ります。



大野浜に出ました。
ずっと見ていても飽きないくらい太陽と海が綺麗ですね・・・♥


そしてルートは墓場を抜けますが・・・
そのルートには鎖から解き放たれた猛獣が・・・
そういえば地獄には番犬がいたっけ(byイレギュラーハンターSEエックス)


両者にらみ合いが続く中、飼い主が墓参りが終ったことにより戦いが
急激に終結しました。
ねむいさん霊長類猫科だから犬と仲が悪いのですよぅ〜


でも猫ちゃんも普通に逃げるよ!
orz




乙部浜です。
はるか遠くに夏に訪れた大王崎灯台が見えます。



麦崎灯台までやってきました。



絶景に次ぐ絶景です☆
この日にここに来てよかった〜♥
冬は天気が安定してるので晴れの日が多いから
穴場なのです!ホントは真夏のどピーカンな日がベストなのですけど。


灯台を抜け、片田港に進みます。



そこから先は新興住宅街で行き止まりばっかり!
しかも道標がこう言うときに限ってないのであちこち迷いました。


だがそれを乗り越えて得られた景色はプライスレス♥


たまに思い出したように近畿自然歩道の道標がありますが
あんまし役に立ちません。



志摩ふれあい公園の休憩所です。
上水道水やトイレがあります。


大きな丸い石かと思ったら
志摩半島を唄う歌の歌詞が刻まれた石碑でした・・・



ここから先、この海女さんの案内看板がたくさん目に入ってきます。


和具の港です。
ここから自然歩道的には中継地点となります。



城山休憩所です。
特に目立った特長は無いですが・・・
海の水が綺麗過ぎて水色に見える・・・(錯乱)


今回のようなアスファルト上の移動が殆どのコースではチェリオの
100円オゑイしスがとても助かります♥
熊野古道の攻略でも大活躍してると思います!!



あづり浜を横切ります。
目指すは金毘羅山!


オートキャンプ場の脇に突如現れる海女体験小屋・・・


そうこうしてるうちに金毘羅山登山口に到達です。


途中までは舗装された車道です。


近畿自然歩道は三角点が無い高いほうの金毘羅山を目指します。


トレイルに変わった道をどんどん登ると・・・
トイレがあった!?



さらにトレイルを駆け上がり・・・金毘羅山頂です!!
うわさどおり360度の展望ですね〜


さぁ後は御座浦に向かって駆け下りるだけです!



下っていくとルート上に存在する爪切り不動尊に落ち合いました



観光客が絶えずいますが荘厳な雰囲気です。



撫で石なるものもありました。
ねむいさんもなでなでしまくりです♥



国道260号を駆け下りて御座港に到着です。



今回のルートは船便があり、対岸の浜島港がゴールです。


少し早く来てしまったので結構まちましたが船は無事やってきました。
・・・っていうか搭乗口そこかい!


ドパンドパンと音を立てて船は進む・・・




十分ちょっとの船旅でしたが無事浜島港に到着です。


ここが本来のゴールですが実は次のルートの起点でもあり、
交通の便宜上ねむいさんは少し先に進みました。




やっぱり美しい浜島の海・・・
有志が作成した魚のタイルアートも見られます。


宇気比神社です・・・。




鼻かけ恵比寿さんです・・・
ここ(恵比須が丘)からみえる熊野灘は美しい・・・♥



そこから丘を降りて浜島海浜公園です。



ビン玉ロードの案内看板がある場所で
近畿自然歩道から離脱です。



浜島バス停です。
バスの来る時間がまだ先だったのととお金の関係でロードワーク追加!


桧山路というバス停でバスを待ち乗り込みました。。


鵜方駅に戻ってきました。
冬は日が堕ちるのが早いです・・・


ねむいさんがぜかましにのれるのはお金と時間に余裕が出来る時だけですね〜
と思い込んでしまいそうになりちょっとセンチになっちゃいます・・・


京都に帰るためには2段階乗換えで帰らないといけない・・・
大和八木で寝過ごすとアウチ!


そのまえに最初の鳥羽駅でお土産はしっかり買い込んでおきました!
お土産も含めてやっぱり家に帰るまでがトレランです!



というわけでこんな形で2016年の山行(?)を〆てしまいましたが・・・
来年は比良山系の縦走などのちょっと危険度の高い難しい場所に
どんどん挑戦していきたいと思います!


近畿自然歩道(船越浜バス停〜浜島港(〜浜島海浜公園〜桧山路バス停))
 GPSログ


追伸:
今回から登山系のレポートで使っているSNSをYAMAPへと完全に乗り換えます。
プラットフォームがかわっても内容は変わらずしっかりと充実させていきますので
よろしくお願いします!

いろいろ試す26

今回SDカード中心です。


●ついに発見!Transcendの4GBのSDカード

当初SDHCをつかまされてしまった私ですがSDコンパチブルな奴をついに見つけ出し
ました!!というかebayで新たに発売開始(???)されていました!


SDHC版と比較…ものすごく似てるけど色が微妙に違う…知らなかったこんなの…

一応SDカードの情報を抜き出してみました(あえてSDv1による初期化です)。

FatFs module test terminal for STM32F427IIT6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Nov 8 2016
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 14597 kB/sec.
>ds 0
rc=0
Drive size: 7788544 sectors
Erase block size: 512 sectors
Default r/w block size: 2048 bytes
Card type: SDv1
SpeedMode: HighSpeedMode(51.43MHz)
DataBusWidth: 4bit

CSD:
00000000 00 0E 00 32 5B 5B 03 B6 9D B7 FF 80 0A C0 00 21 ...2[[.........!
CID:
00000000 74 4A 45 53 44 43 20 20 10 3C D5 6B 7B 00 08 AB tJESDC .<.k{...

Parsing SD CID Register
Manufacturer ID :0x74
OEM/Application ID :JE
Product Name :SDC
Product HwRev :1
Product SwRev :0
Serial Number :0x3CD56B7B
DateCode.Month :8
DateCode.Year :2000

OCR:
00000000 80 FF 80 00 ....
SD Status:
00000000 80 00 00 00 00 00 00 20 03 03 90 00 08 05 00 00 ....... ........
00000010 00 00 00 00 00 00 00 00 00 53 4D 49 00 00 00 00 .........SMI....
00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00000030 00 00 0F 17 00 04 00 00 20 00 00 00 00 00 00 00 ........ .......
SCR:
00000000 02 25 80 00 00 00 00 00 .%......

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

SD_Spec V3.0x!
Detected as SDSC Card!

製造年月が2000年とかなってますけど思い切り嘘ですね。2016年産でから。
一応製造元はTranscendの製造協力会社のものになっており真贋の方は分かりかね
ますが…一応PC上で容量チェックを行った所、4GB分正しく読み書きが可能でした。

SDHCだった方のカード情報はこんな感じです。

FatFs module test terminal for STM32F427IIT6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Nov 7 2016
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 21688 kB/sec.
>ds 0
rc=0
Drive size: 7812096 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
SpeedMode: HighSpeedMode(51.43MHz)
DataBusWidth: 4bit

CSD:
00000000 40 0E 00 32 5F 59 00 00 1D CC 7F 80 0A 40 00 D5 @..2_Y.......@..
CID:
00000000 1C 53 56 53 44 43 20 20 10 01 D2 00 BC 00 82 DB .SVSDC ........

Parsing SD CID Register
Manufacturer ID :0x1C
OEM/Application ID :SV
Product Name :SDC
Product HwRev :1
Product SwRev :0
Serial Number :0x01D200BC
DateCode.Month :2
DateCode.Year :2008

OCR:
00000000 C0 FF 80 00 ....
SD Status:
00000000 80 00 00 00 02 00 00 00 03 03 90 00 08 05 00 00 ................
00000010 00 00 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 35 00 00 00 00 00 00 .5......

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

SD_Spec V2.00!
Detected as SDHC Card!

れっきとしたTranscendの奴ですね。

ちなみに読み出し速度は圧倒的にSDHC版の奴の方が上でしたorz


このSDコンパチブルなTranscendのはSDv1の初期化でバイトアクセスとなり、SDv2の
初期化ではブロックアクセスとなりました。この辺以前紹介した4GBカードたちと同じ
ですね。(ていうか同一の会社がガワだけ別で中身同じの作ってそうです・・・。)


そしてそのうちの前回紹介した4GBのドイツカードなのですが端子の埃をふき飛ば
そうとエアダスターを吹き込んだからカードのプラスティックの隙間に圧縮空気が
入り込み、内部から分解してしまいましたorz貴重な4GBカードがッ…!!!


とりあえず分解して荼毘に付しました。基板がこんなにペナッペナです。工業用の
堅牢な奴に比べて明らかに強度的に弱いですね。値段も安価なのでいたしかたなし
なのですけど。




●CMD1の初期化はどのカードまで可能なのか!?
12月頭にCMD1による初期化がSDカードのライセンスの影響を避けるために必要だ
えらそうに言ってしまいましたので今回は実際にCMD1のカードで初期化が通るん
かいな?という疑問を実際に動作させて検証していきたいと思います。


使用するカードは256MB〜4GB(SDHCじゃない奴)までの容量のSDカードです。
これは春先にひたすら読み込みまくった時の連中をセレクトです。


前回同様STM32F4-DiscoveryのSPI互換モードでSDにアクセスするほうのいつものを
使い、ChaN師謹製の初期化ルーチンからCMD1による初期化のみ残したプログラムを
動作させてファイラーが起動してディレクトリが見えたら初期化成功とします。

結果ですがATPProMAX 1GBのminiSDを除きすべてCMD1による初期化が成功しました!
もちろん成功したカードの中には冒頭で紹介したSDこんぱちなTranscendの4GBの
カードも含まれております。


もちろん2016年製造のPanasonicの工業用SDカードもCMD1の初期化が通ってます!
こいつはCMD8の初期化も通るんですよね〜。CMD8で通っても4GB以下なのでバイト
アクセスになります。

ちなみに私が持っているeMMCはSPIモードが既に削除されている品種のため、どう
がんばってもSPIモードに突入することができずだめでした。SDカードと同一の形状を
保って方のいるMMCplusなどのv4系カードなら問題無いです。


お次はネイティブモードでCMD1の初期化だけを残した奴を試してみましたが…。
・・・
結果は全滅orz

Argumentとか0にして見ましたが何してもどのカードでもタイムアウトで全滅ですorz
ネイティブモードだとCMD1は通らないのか!?

答えはSDIO Specificationに有りました。以下13ページ目のフローチャートを抜粋。


・・・
ネイティブモードが相手ならMMCの例外な実装によってSDカードがたまたま
偶然に動作せざるを得ない!11!!1(CV:リョウ・サカザキ)




♥ねむいさんのおまとめ♥
電子工作においては現在も入手可能な4GB以下のSDカードに対してSPI互換モードで
CMD1による初期化のみでカードを動作させることは十分可能であり、この方法ならば
SDAのライセンシーにも全く抵触しません。

CMD1が確実に通るカードの中でねむいさんの激押しは
TOPRAM製4GB
ドイツ製4GB
Transcend4GB
この3種の4GBカードです!値段も安いですし4GBもあれば十分でしょー

それ以外の方法(SDネイティブモードによるアクセス、もしくはSDHC/SDXCカードを
使う)をどうしても施行したい場合はソースコード中にMMCが実際に動作できるCMD1
による初期化を残しつつMMCまたは互換カードの例外的な実装によってたまたま動作
しているように見せかけてあげればよいと思います。よくない。




●SD Specfication Version5のカード

テレッテレッテーテッテー テレレレレッテー(テュィーーーン)

V!V!V!
もういいわ

2000円ちょっとで売っていたのでつい購入してしまいました。以前私はロゴだら
けや!って予言しましたが本当にロゴだらけですね
V30のビデオ規格のロゴが付与されたものがSDSpecV5のカードの証です。
これにA1ロゴとかもつく予定なのでさらにカオス状態になりそうです。

ねむいさんの予想では山盛りになってしまった性能表記のロゴのすべてを包括する
新たな統一ロゴが来年あたりに登場すると思います。

FatFs module test terminal for STM32F427IIT6
LFN Enabled, Code page: 932
AppVersion : W.I.P
Build Date : Dec 6 2016
>fg piano
rc=0 FR_OK
>fo 1 ftbt.mp3
rc=0 FR_OK
>fr 132949600
132949600 bytes read with 19787 kB/sec.
>ds 0
rc=0
Drive size: 62333952 sectors
Erase block size: 8192 sectors
Default r/w block size: 512 bytes
Card type: SDv2(Block)
SpeedMode: HighSpeedMode(51.43MHz)
DataBusWidth: 4bit

CSD:
00000000 40 0E 00 32 5B 59 00 00 ED C8 7F 80 0A 40 40 C3 @..2[Y.......@@.
CID:
00000000 03 53 44 53 45 33 32 47 80 A4 38 40 2C 01 07 C7 .SDSE32G..8@,...

Parsing SD CID Register
Manufacturer ID :0x3
OEM/Application ID :SD
Product Name :SE32G
Product HwRev :8
Product SwRev :0
Serial Number :0xA438402C
DateCode.Month :7
DateCode.Year :2016

OCR:
00000000 C1 FF 80 00 ....
SD Status:
00000000 80 00 00 00 05 00 00 00 04 00 90 00 0F 05 3A 1E ..............:.
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 35 84 43 00 00 00 00 .5.C....

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

SD_Spec V5.xx!
Detected as SDHC Card!
Available UHS-I Mode.

おやくそくのSDカードの情報を抜き出してみました。
予想通り確かにSD_Specは"5"を示しておりますね★

Go to top of page