こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

組み込みOSでスタックオーバーフローしたら?

マイコンにて組み込みOSでスタックオーバーフローするとその振る舞いはどうなるのでしょうか?

SH2を使っています。
組み込みOSはNorti4を使っています。
タスク作成したときにスタック容量を指定しています。
タスクはひとつです。

タスクのスタックより前の領域には定義メモリ(グローバルメモリ)の領域になっています。
タスクのスタックより後の領域は大きな領域(数Kbyte)ほどあいています。

この場合にタスクのある関数の動作中にスタックオーバーフローが起きた場合、どうなるのでしょうか?

思いついた選択肢は以下のとおりです。

1.定義メモリ(グローバルメモリ)の領域をオーバーフロー分書き換えて、その関数が終了したら呼び出し元の関数に戻る。
その後、書き換えられた定義メモリ(グローバルメモリ)による影響で処理によってはマイコンが意図しない動作になる。
2.スタックオーバーフローした時点でアドレス例外などの例外処理に飛んでしまう。
3.スタックオーバーフローした時点で、暴走し戻れなくなる。
4.その以外

どんなことが考えられますでしょうか?

投稿日時 - 2012-04-11 21:21:10

QNo.7415984

困ってます

質問者が選んだベストアンサー

メモリ保護されていれば2、そうでなければ1が普通。

投稿日時 - 2012-04-11 22:03:20

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-