このQ&Aは役に立ちましたか?
2007/08/02 16:33
お世話になっております。
現在、ルネサスのH8マイコンの開発を勉強しております。
その一環として、以前に他の人が作ったプログラムを調べたりしているのですが、スタックサイズの計算方法が分かりません。
本来純正のコンパイラであるHEWを使っていれば、付属のツールでスタックの計算が出来ることは知っているのですが、それらのプログラムは、
・秋月のAKI-H8についてくるCコンパイラ
・BestTechのgcc用コンパイラGDL
などで開発されているので、統合開発環境であるHEWのように便利なツールはついていません。
とはいえ、本来、そんなツールが無くてもスタックの計算は必須事項だとは分かっているのですが、どうやって計算したものか悩んでいます。
ソースファイルをHEW用に書き直すという手もあるのですが、ツールに頼らない
根本的なスタックの計算手法を身につけたいと考えています。
上記のコンパイラを使った場合のスタック計算について、皆様のアドバイスを頂きたいと思います。
どうかよろしくお願い致します。
オーム社「C言語でH8マイコンを使いこなす」ISBN4-274-07964-3の5章に詳しく記載されています。
御参照下さい。
早速の回答ありがとうございます。
じつは、「C言語でH8マイコンを使いこなす」は私もすでに読んでおりま
す。
この本のから引用ますと、
・本文中の例題は、すべてHEWを使用している場合のもの。
・他のコンパイラでもスタックの計算方法は基本的に変わらない。
ただし、コンパイラがスタック領域に関するサイズ情報を出力してくれな
いとスタックサイズの計算は出来ない。
とあります。
確かに、HEWでコンパイルした場合には、ツールとは別に、mainやサブルーチ
ンで消費するスタックのサイズが個別に出力されますので、地道に経路を追
えばある程度のスタックサイズが計算出来ました。
しかし、質問であげましたコンパイラですと、恐らく私がコンパイラの設定
やオプションの設定を完全に理解できていないためだと思うのですが、各関
数ごとのスタックサイズの情報が出力されない、若しくはどこに出力されて
いるのかが分からない状態です。
そのため、上記コンパイラの使用経験のある方のアドバイスをお願いしたい
次第です。
2007/08/03 11:11
このQ&Aは役に立ちましたか?
この質問は投稿から一年以上経過しています。
解決しない場合、新しい質問の投稿をおすすめします。
ベストアンサーを選ぶと質問が締切られます。
なおベストアンサーを選びなおすことはできません。