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

過去、いろいろなマイコンに対して FM 音源プログラムを移植して来ましたが、その中身自体は数年前に大きく書き直してからは基本的に変わっていませんでした。
8 ビット AVR 用を除けば、当初からフラッシュがたくさんあるマイコン用として、スピード重視でテーブル類のサイズを気にせず作ってきたため、プログラム (コード + データ・テーブル) のサイズは 50 KByte 程度になっていました。
LPC1114、PSoC4 など、最近の廉価な Cortex-M0 マイコンでは、フラッシュ 32 KByte、SRAM 4 KByte 程度であり、移植することができませんでした。
(フラッシュ容量の大きい Nuvoton NUC120 (128 KByte)、NXP LPC11U35 (64 KByte) には移植ずみ (ただし NUC120 用は未公開))
また、当初は MA2 シミュレータ出力だけを参考にしていましたが、OPL 実チップ出力の測定により得られた知見も溜まってきました。
そこで、OPL 実チップの知見も加え、廉価な Cortex-M0 でも動作可能な省メモリ版の FM 音源プログラムを作成することにしました。
対象のマイコンは Cortex-M シリーズに限ることにしました。
また、開発環境のコンパイラとしては、(オブジェクト・サイズ制限のない) gcc を使うことを基本とします。
リンク・サイズが 32 KByte 以下に縮まった時点で、無償版では 32 KByte 制限のある商用版開発環境への対応を考えようと思います。
当面、ターゲットのマイコン・ボードとしては STM32F4-Discovery を使い、開発環境としては CooCox CoIDE 1.7.7 + STM32CubeMX + STM32CubeF4 (HAL + BSP) を使うことを考えています。
手始めとして、この組み合わせで STM32CubeF4 のパッケージに付属する BSP (Board Support Package) を使ってオーディオ DAC (Cirrus CS43L22) から出力することに成功したので、次回はその方法を説明したいと思います。