よりみち

開発上でいくつか大きな変更があったので、ちょっと寄り道させてもらいます。

先日、STマイクロより待望のUSBライブラリの新版がリリースされました。しかし…
残念ながらUSB-HOST/OTGのサンプルはないっぽいorz。しばらく海外のForumを
旅して
きますか…。

既存のプログラムの動作の確認は、先にリリースされていたRC版で予習済なので今回
のライブラリをフォルダごとごっそり差し替えるだけで終わっています。
もちろん動作も確認済。

そして先に告知していましたがSTM32F103のMiddleDensity系は今回の更新で
クローズ、あとSTM32F107VBTの方はSTM32F107VCT6と統合するので削除とします。
これから先はSTM32F107VCT6とSTM32Primer2(STM32F103VET6)を中心に開発を
進めていくつもりです。
また、おきばの方も近々リニューアルする予定です。

それともう一点、いつもARMマイコンのビルドに使っているCodeSourcery G++
バージョンアップしてGCCが4.4.1に変わっていました。以前3系->4系に
変わったときに最適化のされ過ぎでビルドが通っても思ったよう動かない
等の問題があったので試しにいくつかのプログラムをビルドして動かして
みると案の定変な動作するものが出てきました。

具合的に言うとLPC2388のプログラムでswitch文を含むコードを最適化して実行すると
暴走する箇所があり、原因を調べるとリンカスクリプト内のアラインメントの
設定でした。
これは元々AT91R40708でRAMスタートするときに行っていた処置で,.text内の記述で
. = ALIGN(4);であるところを
. = ALIGN(8);としていました。
それを他にもツブシがきくようにと別のARMマイコンのリンカスクリプトにも移植
してその時の環境では動作に問題なかったため放置していましたがこれがあだに
なってしまっていたようです。
それらは". = ALIGN(4);"に直して無事正常動作を確認しました。

ビルド環境がバージョンアップしたり変わったりするとよくこういうことになりが
ちですが,こまめに直していかないといけないですね…。

Go to top of page