まずは、CFFT_Rad4_PS_PBRev.asmはVDSP+用なので、ddsのときのように、拡張子を.Sにする。
次に、section名を L1_code から、 .l1_text,"ax",@progbits に変更。
一旦、make cleanして、コンフィギュレーションからやり直す(必要ないような気がするが)。
Makefileの「アプリケーションプログラムに関する定義」の部分にFFTのオブジェクトを追加する。
UTASK_ASMOBJS = dds.o CFFT_Rad4_PS_PBRev.o
とりあえず、codec_callback.c内で、ad1836aからの音声入力(IQ信号)を入力にして、ビルドするも、メモリ不足のエラーが出るので、FFT_Rad4_BREV.h、FFT_Rad4_Twiddle_Factors.hのファイルから、FFTサイズ256のbit reverse, twiddel factorのテーブルを抜き出して、配列として埋め込んだ。
FFT結果をシリアル出力したが、最初の数回は表示されるだけで、あとは出力されない。オーディオ出力からはトーン信号が聞こえ、光学エンコーダを回すと周波数もちゃんと変わる。
FFT結果の配列を変えて、ビルド、実効すると出力の数値も変わる。どうやらFFTは動いているようだ。正確な計算はできないが、ad1836aのコールバック周期とシリアル出力の速度を考えると、シリアル出力のバッファはすぐにオーバフローしそう。
FFT処理の作り込みに加え、LCDへの表示をキャラクタにするかイメージにするか検討してみた。LCDのサンプルプログラムのキャラクタ表示プログラムは、1文字8×16ピクセルのため、新たに1×1~1×16程度の棒グラフのパーツを作って、表示プログラムも新規に作る必要がある。
キャラクタで1ピクセルずつ、1画面送るとコマンド、位置情報を加えると389KBになる。
イメージの場合、1ピクセルをRGB565フォーマットで送るため、1画面が約41KBとなる。イメージで送った方が有利ということか。
LCDのサンプルプログラムにあった、ミッキーマウスとコメントのあるデータを表示してみる。画面更新とデータ量は変わらないので、一瞬に表示される。(ディズニーらしい画面だが、ミッキーはいない)

次に、section名を L1_code から、 .l1_text,"ax",@progbits に変更。
一旦、make cleanして、コンフィギュレーションからやり直す(必要ないような気がするが)。
Makefileの「アプリケーションプログラムに関する定義」の部分にFFTのオブジェクトを追加する。
UTASK_ASMOBJS = dds.o CFFT_Rad4_PS_PBRev.o
とりあえず、codec_callback.c内で、ad1836aからの音声入力(IQ信号)を入力にして、ビルドするも、メモリ不足のエラーが出るので、FFT_Rad4_BREV.h、FFT_Rad4_Twiddle_Factors.hのファイルから、FFTサイズ256のbit reverse, twiddel factorのテーブルを抜き出して、配列として埋め込んだ。
FFT結果をシリアル出力したが、最初の数回は表示されるだけで、あとは出力されない。オーディオ出力からはトーン信号が聞こえ、光学エンコーダを回すと周波数もちゃんと変わる。
FFT結果の配列を変えて、ビルド、実効すると出力の数値も変わる。どうやらFFTは動いているようだ。正確な計算はできないが、ad1836aのコールバック周期とシリアル出力の速度を考えると、シリアル出力のバッファはすぐにオーバフローしそう。
FFT処理の作り込みに加え、LCDへの表示をキャラクタにするかイメージにするか検討してみた。LCDのサンプルプログラムのキャラクタ表示プログラムは、1文字8×16ピクセルのため、新たに1×1~1×16程度の棒グラフのパーツを作って、表示プログラムも新規に作る必要がある。
キャラクタで1ピクセルずつ、1画面送るとコマンド、位置情報を加えると389KBになる。
イメージの場合、1ピクセルをRGB565フォーマットで送るため、1画面が約41KBとなる。イメージで送った方が有利ということか。
LCDのサンプルプログラムにあった、ミッキーマウスとコメントのあるデータを表示してみる。画面更新とデータ量は変わらないので、一瞬に表示される。(ディズニーらしい画面だが、ミッキーはいない)
