2018-02-01から1ヶ月間の記事一覧

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

アセンブリ言語によるスロット (オペレータ) 計算プログラムでは、ARMv6-M (Cortex-M0) の 16 ビット Thumb 命令を主に使うこととし、ARMv7-M (Cortex-M3/M4) に対しては一部を 32 ビット Thumb2 命令で記述することにより効率化しています。 以下に、その「…

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

armcc の「エンベデッド・アセンブラ」では、関数まるごとアセンブリ言語で記述し、関数冒頭のレジスタ・セーブや、関数最後のレジスタ・リストアやリターン命令まですべてを記述する必要がありました。 gcc の「インライン・アセンブラ」では、C 言語での記…

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

オペレータ処理をアセンブリ言語で書く場合、C プログラム・ソースの構造体アクセスの o_p->ph_acc のような表現は、アセンブリ言語ソースとしては最終的には ldr r2, [r0, #4] のように「定数オフセット」にまで変換される必要があります。 C プログラム・…

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

今回は各種のチップ/コンパイラの組み合わせのオブジェクトに対する逆アセンブル・リストを掲載します。 もとの C ソース・ファイルでの記述を少し変えると、コンパイル後のオブジェクトはかなり大きく変化するので、あまり細部に渡る追及はしないでおきます…

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

プログラムを動作させるマイコン・ボードとしては、オペレータ出力波形をオシロで手軽にチェックするために、手持ちの中で DAC を内蔵するチップを搭載している次のボードを選びました。 Nucleo-F446RE (STM32F446RET6, Cortex-M4) STMF4-Discovery (STM32F4…

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

これまでのFM音源プログラムでは、オペレータ (スロット) ひとつ分を実現する関数を定義し、それをオペレータの個数だけ呼び出していました。 より効率化するために、ひとつの関数内ですべてのオペレータの計算を行なうように変更することを考えています。…

ムライボックス (23)

PIC16F18313 用のムライボックス・プログラムのパッケージを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。

ムライボックス (22)

PIC16F18325 用のムライボックス・プログラムのパッケージを公開しました。(→こちら) 上記リンクをクリックすると Yahoo! ボックスが開きます。