Talkthrough改良

「次はフィルタの実装」等といいつつ、昨晩はプログラムの改良とコメント付けに終始していました。
TOPPERS/JSP版のTalkthroughは、フレームワークと信号処理の分離に拘泥するあまり、ダブルバッファの処理と信号処理のタスクを分けるという過剰分離に陥っています。作った当時は頭の隅にコンポーネントという言葉がちらついていたりして、それなりに理想はあったのですが、じゃできたものはと言うと"Link and Play"とは程遠いものでした。と言うことで此れを書き直して信号処理部をタスクではなくコールバックに変更しました。
μITRON準拠TOPPERSの実践活用―製品開発にも学習教材にも使えるフリーのOSプラットホーム (TECH I Embedded Software)の10章、11章に拙文が掲載されています。その11章表4にTalkthrough実行時のオーバーヘッドが掲載されています。それによると4サンプルごとにDMA割り込みを書けた場合、VisualDSP++のコンパイラで5.1%が消費されています。それに対し、同じ割り込み条件でgccを使った場合には3%が消費されているだけです。ここでgccPizzaFactory Express 3.1.1のもので、-O2 -g 条件でビルドしています*1。VisualDSP++のコンパイラはかなり優秀ですので、その差をかんがみると結構な効果が出ていると言えます。

*1:-gをはずすようpropertyで指示したが、効かなかった。Express版の制限かもしれない