eqpredさん、こんにちは。恩田です。 > > H8OS、私もはまりました。 > え"。皆さんH8OSをお使いでなかったのですか? 私もつい先週H8OS(AKI-H8LAN)についてこちらで質問をして、皆さんあまり使ってないのかな? という感じを受けました。インターネットを検索しても”こんなの作ったぞ”というようなHPもないですよね。 (AKI-H8LANに別のOSを載せましたという、つわものの方はいらっしゃいます -> ね、hamayanさん) 先の当MLのやり取りで、現状のH8OSには不安定要素があることがわかったので、私はpingで 応答確認、LCDの接続と表示確認をした段階ど止まっております。別のマイコン(AVR)のOSで、 アプリを書き始めました。 過去ログアーカイブ http://www.exp.org/h8/ml/archive/cgi/view.cgi > > H8OSは、そのままの状態ではH8内蔵メモリ16KBしか使用してないようです。(外部RAMは > そうなんですか。外部RAMはデフォルトでは使っていない。というより、使えない、ですか。 そうですね。ユーザープログラムの中から使用するとか、デバッガのメモリ書き込みコマンドで書き込むとか しか出来ないですよね。付属のユーザープログラムをRAMに転送するDOS/Winプログラムは、内蔵RAM しか転送できないです。いくら外部RAMにプログラムを置くと動作が遅くなるといっても、これでは2MBが もったいないですよね。 > > ユーザーがすべて利用可能という記述がありました)したがって、スタック・ユーザープログラム > > システムが使用するメモリなど全て内蔵RAMで行っているので、スタックがオーバーフロー > > しているのかなと思います。 > たしかに、そうかもしれません。調べる方法があると思うので、勉強してみます。 スタックポインタの指すアドレスが、内蔵RAM上のユーザープログラムと重なってないか調べれば いいのかなと思います。しかし、H8OSのデバッガ(コマンドインタプリタ)は、ステップ実行やレジスタ を表示することは出来なかったので、ユーザープログラムでスタックポインタを調べなければならない かなと思います。結局ニーモニック(アセンブラ)で書かなければ判らないかな? > > これを後からいじるには、スタートアップルーチンに手を加えねばならないのでは?と思います。 > うーむ。すこし勉強してみます。 たぶん、H8OSのスタートアップルーチンの中で、インラインアセンブラでスタックポインタ(SP)に値をロードしている 個所があると思います。(探してみましたがまだ見つけてません。) > > もしくは、あまり期待できないですが、運良く、ユーザープログラムを走らす前にシステムがサブ > > ルーチンコール・退避していなければ、ユーザープログラムでスタックポインタを外部RAM領域に > > 変更してもいいんじゃないでしょうか? > これも考えてみます。 > > > (インラインアセンブラでSP(ER7)を直接いじってみてはどうでしょうか?) > これは最後にとっておきます(^^;)。 いずれにしても、ニーモニックが必要かなと思います。 ----------------------------- 恩田紀雄 n.onda@xxxxxxxxxxxxxxxxxxx