よりみち

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

先日、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);"に直して無事正常動作を確認しました。

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

Comments

Post a Comment








Go to top of page