昨夜シャワーを浴びているときに思いついた方法を試してみたら、ずっと解決できないで困っていたバグをすんなり解決できた(と思う。要テスト)。たまにこういうことがあるからソフトウェアの開発期間というのは読みにくい。
上層部が業者に新規開発の基盤の発注を内示したらしい。まだパフォーマンスの検証がまだだと言うのに…。どうなっても知らんぞ。それでもできるだけ早めに検証を済ませるべくいろいろと作業。新しい基板では今回はDSPのバージョンが新しくなるので、そのDSPチップに対応させるために開発環境をバージョンアップした。バージョンアップでコンパイラも更新されたようで、現在のソースをビルドしたら何箇所か不具合が出た。問題になったのは変数の宣言と同時に代入していた部分で、

int nArray[ARRAY_SIZE];
int* pTop = nArray;

のようにしていた部分。新しいコンパイラではpTopへの代入が起こらず値が不定になっていた。C言語の文法としてどちらが正しいのか調べていないが、代入されないならエラーか警告を出してほしいものだ。