0

私は OMAPl138 lcdk を使用しており、オーディオ処理用の基本的なアプリケーションがあります (フィルタリング + イコライザー、特別なものはありません)。歴史的な理由により、宣言された静的およびグローバルデータ、変数、配列、および構造体がたくさんあります...

基本的に、私のアプリケーションは正常に動作します。しかし、静的変数配列をもう 1 つ宣言しただけでは、出力信号が表示されません。同時に私はそれにアクセスしません、それは宣言されているだけです。

もともと私は次の.bssを持っています

c31031f0    c31031f0    000006a0   00000000    rw-
  c31031f0    c31031f0    000006a0   00000000    rw- .bss

と .far セクション

c3000000    c3000000    0005c994   00000000    rw-
  c3000000    c3000000    0005c994   00000000    rw- .far

私はstatic float tmpArr[8]失敗を宣言して見ようとしています。

これらのセクションは、次のように宣言されている DDR メモリに関連しています。

DDR                   c3000000   00800000  00103f56  006fc0aa  RW X

したがって、未使用のサイズは 0x6fc0aa です。これは、配置する大きな部屋です:)。

それは何に関連している可能性がありますか?どんなヒットでも大歓迎です。

4

1 に答える 1

1

この種の問題は、デバッグが難しい場合があります。ターゲット システムのメモリ レイアウトを調べて、セクションのいずれかがその境界を超えていないかどうかを調べる必要があります。

そのような場合に一般的なアドバイスをするのは本当に難しいです。理由を見つけるため (またはそうでない場合) に、何日も何週間もデバッグに費やすのは簡単です。ビルドからコード ベースの一部を削除して、何が信頼性を低下させているのかを把握することができます。一部の組み込みシステムでは、統合は悪夢になる可能性があります。

OMAPL138でも問題ありませんでした。ARM9 と C674x DSP の両方で信号処理アプリケーションを実行しています。

于 2016-06-17T16:29:10.820 に答える