ColdFire MCF52233 基板 (10) -- FM音源プログラム TGMCF
GCC & GDB 環境での「FM音源プログラム」は、内蔵デモ曲の演奏ができる所まで進みました。
プログラム名は「TGMCF」としました。
MIDI 入力部は UART0 を使用する前提で作りましたが、どうやら gdb スタブで UART0 は使われているようで、MIDI 入力はうまく動きませんでした。
MIDI 入力部は UART1 を使用するようにハード / ソフトを変更しようと思います。
同時発音数、サンプリング周波数の設定と、デモ演奏時の CPU 負荷率の表を下に示します。
同時発音数 | サンプリング周波数 | CPU 負荷率 |
---|---|---|
3 | 48 kHz | 74 % |
6 | 30 kHz | 82 % |
8 | 24 kHz | 83 % |
13 | 16 kHz | 86 % |
16 | 12 kHz | 80 % |
gcc の最適化オプションは「-O3」でコンパイルしています。
ともに「暫定版」レベルである STARM 版との比較では、CPU クロック周波数比を単純に計算すると、
MCF52233/STARM = 60/72 = 0.833
となります。
一方、同時発音数とサンプリング周波数を掛け合わせて、秒当りの処理能力の指標とすると、
MCF52233/STARM = (16*12)/(16*18) = 0.667
となり、クロック周波数比よりは性能が落ちることが分かります。
GCC は、マルチプラットフォーム、マルチターゲットの展開を重視し、特定のプロセッサでの性能追及には重点を置いていないので、専用コンパイラよりは性能が劣る傾向があります。
現在は CodeWarrior でコンパイルしたオブジェクトを書き込める環境にないのですが、そのうち環境を整えて (具体的には BDM ケーブルを自作して) GCC と比較して、どのくらい性能が向上するのかを試してみたいと思います。