main 関数を実行すると、各種の初期化を行い、割り込みハンドラ afw::rxISRを登録した後、 割り込みとDMAを許可してオーディオ信号の送受信を行う。オーディオ信号はSPORT0経由で入力 し、DMAによってメモリ上に格納される。2次元DMAの各行が終わるたびにオーディオ信号受信割り込み が発生し、 afw::rxISRが呼び出される。
afw::sport0RxISR は割り込みをクリアし、トリプルバッファの制御を行う。そしてしかるべきデータを DMAの受信バッファから取り出すと、使いやすいよう並べなおしてユーザー定義のコールバック関数 afw::processData を呼び出す。
afw::processData は実際に信号処理を行う場所である。 afw::processDataは入力したデータを 出力バッファに格納して呼び出し関数に戻る。このさい、 param::gainの値に応じて音量を調整する。 param::gainの値は割り込みが発生するたびに変更される。
afw::processDataから制御が戻ると、呼び出した関数であるafwrxISRは出力データを並べ替えて然るべきDMAバッファに 格納する。
EZ-KIT Lite BF-537のディップスイッチの設定は以下のとおり
1.4.7