2011-11-15 15 views
1

私はFreeRTOSを使用してATMega323_WinAVRでプロデューサ/コンシューマアルゴリズムを実装しようとしています。FreeRTOS過剰なスタックオーバーフロー

AVR Simulator: Excessive stack overflow, stop sim

をスタックポインタは、この行で停止:このエラーが表示されないのはなぜ

static void prvCopyDataToQueue (
    xQUEUE *pxQueue, const void *pvItemToQueue, portBASE_TYPE xPosition){ 

デバッグするとき、私はAVR Studio 4の中で、このエラーを取得しますか?

ありがとうございます!

答えて

1

プログラムをビルドするとき、リンカはRAMのどこにスタックがあるかを定義し、デバッガはその場所でプログラムが見つかると予想します。 FreeRTOSスケジューラを実行すると、各タスクは作成時にスタックに割り当てられるため、スタックはFreeRTOSヒープから取得されます。デバッガは、スタックがどこにあるか分からず、FreeRTOSを知らないので、タスクがそのスタックをオーバーフローしたかどうかを知る方法がありません。

私はデバッガをオフにしてから、FreeRTOSでスタックチェックをオンにすることをお勧めします(スタックオーバーフローを確認する場合は、開発中のみ推奨)。

よろしくお願いいたします。

0

this threadをご覧ください。シミュレータのスタックウォッチャに問題がある可能性があります。

関連する問題