2016-10-28

CubeMXのバグ

STM32F411 のソフト開発に CubeMX を使用中。
ペリフェラルの設定が非常に簡単なので便利だが、クロックの設定でバグ(たぶん)を踏んでしまった。

STM32 では HCLK の値によって Flash latency の値を変える必要があって、その設定コードは CubeMX が生成してくれる。
30MHz < HCLK <= 64MHz の時は Flash latency は 1 wait cycle、
64MHz < HCLK <= 90MHz では 2 wait cycle となる。

で、HCLK が 64MHz の時は 1 wait state になるはずが、なぜか 0 wait state のコードが吐き出される。
63MHz や 65MHz、他の境界値では正しい設定になってたが、64MHz だけおかしい。
こんなピンポイントなバグを踏んでしまうとは・・・

CubeMX のバグったコードが目に浮かぶようだ・・・

ちなみに CubeMX は Eclipse のプラグインのやつで、バージョンは 4.16.0.201607131424 です。

0 件のコメント: