aprMenu とかは mn10200 の code で実装したんだけど、実機ではどうなんだろ。さらにネストした問題がある。カーネルスタック。
まず、mn10200 の code で実装するとスタック使わざるを得ないが、「そのスタックをユーザスタック(0x120000 からの領域)に使用していいか?」という問題。で適当に用意した、領域にカーネルスタックを用意するが、また問題。その位置は固定だから、aprMenu からさらに、aprMenu を呼び出す(仕様として許されている)と、スタック領域を上書きしてしまってうまくいかない。
で、とりあえず以下のようにしている。
カーネルスタックの一番後に「ネストレベル」を設け、そのレベルが0のときのみ a3 にカーネルスタックの値をロードする。それ以外は無視する。
# ユーザスタック使ってよかたんだろうなぁ。

コメントを残す

メールアドレスが公開されることはありません。