f:id:clayfish:20080321130809j:image:right

去年から今年にかけて、初めて DSP のソフトウェアを開発する機会を得ました。
その開発を通して感じたのは DSP のソフトウェアを作るのはとても難しいということです。その要因を考えると、DSP のソフトウェア開発は多くの制約と戦わなければならないという点につきるのではないかと考えるにいたりました。いまどきの普通の組み込み系開発は、Windows のアプリケーション開発とほとんど変わりないような状況ですが、DSP 開発はそうではないということを痛感しました。
そのような経験を通してイディオムレベルでもカタログ化していくことには意義があるはずと思っている次第です。

「普通の組み込み系開発」と「DSP のソフトウェア開発」の間にある難しさの要因をいくつか考えてみました。

リソースに関する問題

  • 限られたメモリ領域
  • 限られたサイクル数
  • ハーバードアーキテクチャ
  • 消費電力
  • ワード/ビット数
  • I/O
  • ホスト側の制約

プログラミングに関する問題

  • リセットハンドラ
  • 割り込みハンドラ
  • volatile
  • メモリアロケーション
  • シングルスレッド
  • メモリオーバーレイ
  • スタック
  • リングバッファ・リニアバッファ

信号処理ドメイン固有の問題領域

  • 実時間
  • サンプリングほにゃらら

カタログ化はこれからちらほらやっていきたいと思います。