組み込み用マイコンのスタックについて

このQ&Aのポイント
  • 組み込み用マイコンのスタックについて知りたい
  • ルネサスのH8マイコンの開発をしているが、スタックサイズの計算方法が分からない
  • HEWを使わずにスタックの計算方法を学びたい
回答を見る
  • 締切済み

組み込み用マイコンのスタックについて

お世話になっております。 現在、ルネサスのH8マイコンの開発を勉強しております。 その一環として、以前に他の人が作ったプログラムを調べたりしているのですが、スタックサイズの計算方法が分かりません。 本来純正のコンパイラであるHEWを使っていれば、付属のツールでスタックの計算が出来ることは知っているのですが、それらのプログラムは、 ・秋月のAKI-H8についてくるCコンパイラ ・BestTechのgcc用コンパイラGDL などで開発されているので、統合開発環境であるHEWのように便利なツールはついていません。 とはいえ、本来、そんなツールが無くてもスタックの計算は必須事項だとは分かっているのですが、どうやって計算したものか悩んでいます。 ソースファイルをHEW用に書き直すという手もあるのですが、ツールに頼らない 根本的なスタックの計算手法を身につけたいと考えています。 上記のコンパイラを使った場合のスタック計算について、皆様のアドバイスを頂きたいと思います。 どうかよろしくお願い致します。

noname#230358
noname#230358

みんなの回答

noname#230359
noname#230359
回答No.1

オーム社「C言語でH8マイコンを使いこなす」ISBN4-274-07964-3の5章に詳しく記載されています。 御参照下さい。

noname#230358
質問者

補足

早速の回答ありがとうございます。 じつは、「C言語でH8マイコンを使いこなす」は私もすでに読んでおりま す。 この本のから引用ますと、 ・本文中の例題は、すべてHEWを使用している場合のもの。 ・他のコンパイラでもスタックの計算方法は基本的に変わらない。  ただし、コンパイラがスタック領域に関するサイズ情報を出力してくれな  いとスタックサイズの計算は出来ない。 とあります。 確かに、HEWでコンパイルした場合には、ツールとは別に、mainやサブルーチ ンで消費するスタックのサイズが個別に出力されますので、地道に経路を追 えばある程度のスタックサイズが計算出来ました。 しかし、質問であげましたコンパイラですと、恐らく私がコンパイラの設定 やオプションの設定を完全に理解できていないためだと思うのですが、各関 数ごとのスタックサイズの情報が出力されない、若しくはどこに出力されて いるのかが分からない状態です。 そのため、上記コンパイラの使用経験のある方のアドバイスをお願いしたい 次第です。

関連するQ&A

  • H8マイコン スタック領域について

    スタック領域について教えて下さい。 [動作環境]  開発環境:ルネサス HEW Version 4.08  マイコン:ルネサス H8/1653  コンパイラ:H8SX,H8S,H8ファミリ用C/C++コンパイラパッケージ V7.00 HEWにて新規作成しますと、セクション定義にスタック領域(S)のアドレスと stacksct.h 内に スタック領域のサイズ #pragma stacksize 0x200 が自動で生成されると思います。 しかし、入手したH8/1653用のサンプルには #pragma stacksize のような サイズ指定がありませんでした。 [サンプル] (1)セクション定義やスタック領域のサイズ指定が無い (2)サブコマンドファイル(xxxx.sub)内でアドレスは設定されているが サイズの設定が無い。 -- サブコマンドファイル(xxxx.sub)-- START  CStart/00000000; START  P,C,D/00000400; START  B,R/00FF2000; START S/00FFC000; [質問]  質問1   (1)のスタック領域はどこに配置されるのでしょうか?  質問2   (2)のスタック領域は 00FFC000 を基準にどう確保   されるのでしょうか? (a)の方向へ確保?(b)の方向へ確保?          00F00000 (a)         ↑       00FFC000 (設定アドレス)         ↓       00FFFFFF (b)        質問3   (1)、(2)共にスタック領域と同時にヒープ領域も指定がありません。   これらは指定しなくても問題ないものなのでしょうか?   また、熟練者の方は指定しないものなのでしょうか? よろしくおねがいします。

  • H8/3052FマイコンにRTOS

    こんばんは!! 学校の授業で組込みに興味を持ち、勉強してみようと思い、 組込みを勉強しようと思っています!! 秋月電子のAKI-H8-LANが学校にあったので、 借りて来ています。しかしマニュアルも何もありません。 マイコンはH8/3052Fを使っています。 開発環境はRENESASのHEWを使い、LEDを点灯させたり、 点滅させたりというプログラムをやっと出来るようになりました>< 書き込みはH8write turboで行っています。 RTOSを勉強したいのですが、TOPPERS/JSPカーネルを ダウンロードし、HEWでコンパイルしたかったのですが、 出来ません>< そこで、3052Fで使えて、HEWでコンパイル(というかビルド?) 出来るRTOSを教えてください!! 私の調査・勉強不足なのですが、 HEWでTOPPERS/JSPカーネルが使える方法もありましたら よろしくお願いします!! 未熟者ですがどうかよろしくお願いしたしますm(__)m

  • ルネサスマイコンへの書き込みについて

    C言語で作成したプログラムをルネサスマイコン"SH7045"で動作させるためにはどうしたらいいのでしょうか? 開発ツール"HEW"を用いてプログラムを作成し、フラッシュ開発ツールキット (Flash Development Toolkit) というものを使えばいいと思っていますが、合っていますか? ここからがよく分からないのですが、SH7045を使用した自作基板とPCとの接続はどのようにしたらいいのでしょうか? RS232Cで直接接続するだけでは駄目ですか?間に何かいるのでしょうか?

  • スタックポインタをC言語で記述する方法は?

     スタック・ポインタの設定はアセンブラで記述してリンクしていますが、C言語で記述する一般的な方法は有りますか。  ルネサスのHEWだと出来るようですが、コンパイラ依存性が有るようです。  コンパイラに依存しないか、たいていのコンパイラなら出来る方法は有りますか。  宜しくお願いします。  

  • H8マイコンによる組み込みプログラミング入門

    この分野の初心者です.マシン語,アセンブラ,CPUの仕組みは理解できていますが,CPUと周辺との入出力,デバッグ環境等はまったく自信なしです. H8マイコンを使って,組み込みプログラミングを学習したいと思います.秋月から出ている,AKI-H8~ が手頃なようですが,どれを購入したら良いのかよくわかりません.ゆくゆくは,自分で回路なんぞ組み立ててH8から制御してみたいのですが,現時点では,LCDへの表示やLEDの点灯等の簡単なものを行いたいのです.C言語はできるので,開発環境一式そろったものが良いのです. AKI-H8/3052F USB開発キット(フルセット) AKI-H8/3052F開発セット(H8マザーボードセット) AKI-H8/3048開発キット(即使えるキット) など,8000円台前後でいろいろあるようですが (1)組み立ては難しいですか? (2)パソコンと接続するのに,他に何か必要なのですか? (3) ROMに焼けるのですか?(何回も) (4)最初に述べた目的を達成するには,何を購入すれば良いですか.

  • H8の開発環境について

    秋月のH8の開発キットを使っています。 開発環境としてgccとHEWのうち、私はHEWを採用しましたが、gccとHEWの違いって一体何なのでしょうか。また、gccを使用している人が書いたソースをHEWでコンパイルしたり、といった事は可能なのでしょうか?

  • GDLの環境でH8モニタプログラムの作成について

    先日、GDLのコンパイル方法についてたずねて一つ一つ行うことが可能になりました!ありがとうございます。 また質問になってしまいますが、H8のフラッシュROMにGCCのライブラリとモニタを同時に書き込むために、現在GDLの環境でルネサスさんからダウンロードしたモニタプログラムをコンパイルしようとしています。 モニタプログラムは秋月製のコンパイラを使用しした場合、参考ホームページもたくさんあり、うまく出来たのですが、GDLで行うとなると、環境が違うのか 例として AAA.src というファイルがアセンブラ言語で書かれていた場合、アセンブルを行うとエラーが発生してしまいます。 やはり、環境が違うため書き方が違うみたいです。 プログラムの内容は全く初心者で、そのファイルの内容をどのように変えればうまくコンパイルできるかわかりません。何でもいいので参考になるようなものがあれば、教えていただきたいです。 また、GDL環境でモニタプログラムを作成しているようなページがあれば教えていただきたいです。 聞いてばかりで申し訳ないですが、よろしくおねがいします。

  • EclipseでH8マイコンのHEWのコンパイラを使えるようにする方法

    現在、H8マイコンのプログラミングをEclipseでできないものかと調べているのですが、EclipseにH8マイコンの開発環境HEWで使用しているコンパイラをEclipseでも使えるようにする方法というのはありますでしょうか? どのように設定すればよいか教えていただけると助かります。

  • ルネサスのHEWに関するルネサスの公式の質問サイト

    現在、ルネサスのH8マイコンなどの開発環境のHEWに関して質問したいことがあるのですが、ルネサスなどのサイトに公式の質問サイトなどご存じの方いらっしゃいませんでしょうか? どうぞ、教えて頂きますようお願い致します。

  • H8マイコンでの割り込み(シリアルポート入力で)

    マイコン:AKI H8/3048F 開発環境:GCC Developer Lite マイコンとパソコンをRS-232Cケーブルでつないでいます。 ハイパーターミナルを使用して、マイコンを制御したいと考えております。 それで、パソコンのキーボードから入力があった時だけ、割り込みを実行したいです。 割り込みが無い場合は、パソコンでマイコンを制御することができたのですが、割り込みを追加したら、うまくいかなくなりました。 アセンブラを使用せずに、C言語だけでプログラムを完成させたいと思っています。 SCI1からの割り込み処理をするには、どの様にしたらよいのでしょうか? どうか、お願いいたします。