0

ソフトウェアを 2 つの部分に分割しました: ブートローダー (RTX なし)、RTX 付きのアプリケーション イメージ。しかし、ブートローダーは RTX でアプリケーション イメージをロードできませんでした。フラッシュ設定は次のとおりです。

-------------------------------------------------- ------------------
        開始アドレスサイズ
IROM 1: 0x08000000 0x2800 - ブートローダー (RTX なし)
IROM 2: 0x08002800 0xD000 - アプリケーション イメージ (RTX あり)

私は 3 つの方法をテストしました: (1) RTX なしで別のアプリを使用します。ブートローダーはアプリを正常にロードできました。

(2) RTX プロジェクトの IROM 設定でアプリケーションを変更します。アプリケーション プロジェクトの IROM 開始アドレスを 0x08002800 から 0x08000000 に変更します。そして、アドレス 0x08000000 からアプリケーション イメージをフラッシュにダウンロードします。イメージは 0x08000000 から正常に実行できました。

(3) アプリケーションイメージの IROM 開始アドレスの設定は 0x08002800 です。ブートローダーとアプリ イメージをフラッシュにダウンロードした後、アプリ プロジェクトを keil で段階的にデバッグします。「osTimerthread スタック オーバーフロー」エラーがあることがわかりました。次に、メイン スレッド スタックもオーバーフローします。スタックサイズを増やそうとしましたが、うまくいきません。アプリが RTX カーネルの切り替えでスタークすることがわかりました。すべてのスレッドが待機状態にあり、実行されていません。

追伸、keil でデバッグしているときに、テスト項目 (2) にもカーネルの初期化中にスタック オーバーフロー エラーが発生します。アイテム(2)は今のところ問題なく動作します。だから、ここに必要な情報を入れただけです。

これは項目 (3) のデバッグ画像です。 ここに画像の説明を入力

4

1 に答える 1