STM32F7が発表になってCMSISヘッダファイルもようやくV4.00になった

20150717追
STM32F7はぢめました
20150717追


少し前にCortex-M4をさらに進化させたCortex-M7が発表され、ねむいさんを含む
一部の方の間で騒然としておりました。同時にSTMicroさんからも同コアが搭載された
STM32F7シリーズが発表され、既にBGA品がサンプルとして
出荷されているそうです。

既にSTM32F7用のサイトもあってデータシートも
公開されております(RMはまだです)。
Cortex-M7コアではAXI+AHBのマトリクスになり、密結合メモリ(TCM)も
インストラクションとデータ専用に用意されさらに外部メモリ用にI/Dとも
4kByteずつL1キャッシュも搭載されております。
ねむいさんがSTM32F7で着目したのはLPC4300シリーズではおなじみのクアッド
SPI-ROMの対応
です。
これによりリニアなアドレスに配置されて内蔵フラッシュと同じ感覚で
使用できることになるためFONTX2のような大容量のデータを扱うプログラムも
組み易くなりますね♥
内蔵フラッシュが1MBに抑えられているのもデータの塊はSPI-ROMに押し込めよ
という意図があると思います。

あとCortex-M7では浮動小数点演算ユニット(FPv5)が倍精度まで対応して
います…が、STM32F7ではSTM32F4と同じ単精度のみの対応となるそうでF**K!
発表された当初はデータシートよく読み込んでおらず、ついに倍精度に
対応かー!と思い込んでたのでぬか喜びでしたorz

アーキテクチャとしてはCortex-M4Fと同じARMv7E-Mとなるのでバイナリは
互換出来るそうです。STM32F4ではTCMではなくCCMがありましたがそれが
配置されていたアドレスはTCMとは全く異なりますので凝った使い方されて
いる方は結局リンカスクリプトから組み直しになりますのでご注意ください。
しかしながらCCMではできなかったDMA転送がDTCMでは可能になっていますので
かなり素直にプログラムを組むことができるようになるでしょう。


さて、発表されたばっかで商用はともかくGCCコンパイラもこれから対応開始となる
ようですのでSTM32F7を実際に入手して遊べるようになるのは半年くらい先に
なるかなと思います。
STM32F2の時見たES品が中華から流れてきてくれたらもっと早いかも。
20141001追:
LauchpadのARM-GCCがアップデートされましたがなんとCortex-M7の対応が
ギリギリで突っ込まれたようです!
STM32F7対応にする場合はSTM32F4からは以下のようにオプションを変えることに
より可能です。

STM32F4:
-mthumb -mcpu=cortex-m4 -march=armv7e-m -mtune=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16


STM32F7:
-mthumb -mcpu=cortex-m7 -march=armv7e-m -mtune=cortex-m7 -mfloat-abi=hard -mfpu=fpv5-sp-d16


そしてCMSISのサポートの方ですがこちらの方は発表と同時にCMSISもアップデート
してヘッダライブラリもやっとこ3.30->4.00に更新されています。
もちろんCortex-M7コアのヘッダも追加されております。ようやくメジャーナンバの
更新になりましたが私が試したところでは全く影響はなかったのでそのまま差し替えて
使用が可能かと思います。
おきぱのプログラムも10月度の更新から順次V4.00版CMSISヘッダファイルに
差し替えて更新していきますのでよろしくおねがいします。




おまけ

STM32F411RE-Nucleoが夏前に手に入りました。STM32F411シリーズはF401の
機能拡張版の位置づけのようです。PCM1723氏が非常に詳しく考察されています。
PCM1723氏もCubeMXのバグに言及されてますね…
なお、おきぱのF401-Nucleo向けのバイナリはそのままSTM32F411版でも
使用可能です♥

OpenOCDはSTM32F411シリーズは未対応だったので対応させております。
本来はOpenOCD小ネタ行きの案件ですが小ネタ過ぎて載せられなかったので
こちらで告知させていただきます。
次回は大物の更新が控えていますのでご期待下さい♥
おきぱにあるWindows用バイナリもすでに対応済ですのでご利用ください。

おまけのおまけ

ああああああああああああ!!
RTC用のチップコンデンサは位置的に物が当たり易い位置にあってすぐ欠けるorz

Go to top of page