新版FM音源プログラム (2)

ペリフェラル初期化 C ソースコード・ジェネレータ」である STM32CubeMX では、以下の開発環境によるビルドに対応しています。

  • ARM/Keil MDK-ARM
  • IAR EW-ARM
  • Attolic TrueSTUDIO
  • AC6 SW4STM32

このうち、最初の 3 つは商用の開発環境で、STMicro 以外の他社製のマイコンにも対応していますが、無償版ではリンク・サイズに 32 Kバイト程度の制限があります。
最後の SW4STM32 は gcc ツールチェイン・ベースで、リンク・サイズに制限はなく無償で使えますが、対応しているのは STMicro のマイコンのみです。
サポートされていない開発環境、たとえば CooCox CoIDE との組み合わせについては以下の記事が参考になります。

SebastianWinter.com: Using CooCox CoIDE together with STM32CubeMX
電子工作専科のぐうたラボ CoIDEでSTM32 Cube MXを使う

(手動で) CoIDE を対応させるポイントをまとめると、STM32F4-Discovery ボードを使う場合には、

  • 「Repository/Peripheral」画面で「CMSIS BOOT」にチェックを入れ、「cmsis_boot/startup」フォルダに用意される「startup_stm32f4xx.c」ファイルをコンパイル対象にする。 (CoIDE が準備するファイルでコンパイル対象にするのはこのファイルのみ)

  • 「Configuration/Compile」画面で「Defined Symbols」に「STM32F407xx」と「USE_HAL_DRIVER」を追加。

インクルード・ファイル類 (*.h) や、「system_stm32f4xx.c」は STM32CubeMX が用意するものを使うように (手動で) CoIDE プロジェクトに追加します。
CoIDE でサポートされていないチップ、たとえば Nucleo-F401 の STM32F401RET6 の場合には、最も近い STM32F401RC を選んで、さらに下記のような変更を加えます。

  • 「Configuration/Link」画面で「Memory Areas」欄のフラッシュ・サイズの書き換え (0x00040000 → 0x00080000)

  • 「Configuration/Download」画面で「Programming Algorithm」のパスを「STM32F4xx_512.elf」に書き換え

「Defined Symbols」では「STM32F401RC」を「STM32F401xE」に置き換えます。
次回は、BSP (Board Support Package) と STM32CubeMX が生成する初期化コードとの共存について述べます。