[H8-ML(4576)] Re: なんじゃこれは〜 トランジスタ技術4月号
From: hamayan <hamayan@xxxxxxxxxxxxxxxx>
Date: 2004年03月12日(金)10時46分13秒
hamayan です。

hamayan> Toshio> ※欲張り要求としてFLASH-ROMを64KB,RAMを4KBくらいにしてくれればHOS-H8
hamayan> Toshio> くらいが楽に?載りそうだったんだが(^^;

P、C、D、Bセクションの見積もりは、mapファイルを見れば一発ですが、スタッ
クサイズの検討が難しいと思います。(煩雑なだけ!とも言われていますが)

トラ技付属のHEW3には、嬉しい事にCall Walkerが有効です。今までの評価版、
無償版では利用できなかったので、使った事の無い人は是非!。

インストールの途中で、どの機能をインストールするかチェックボックスで聞
いて来ます。デフォルトではスタック計算何とか(但し英文)のチェックボック
スにチェックが付いているはずですが、チェックが外れていたら、是非付けた
方が良いでしょう。

使い方は、HEW3のプロジェクトを起動後、オプション(O)、Link/Libraryタブ、
Categoryはotherの『Stack Information Output』にチェックを入れて、ビルド
します。
現在のセクションフォルダ、例えばDebugとかReleaseフォルダに、プロジェク
ト名.sniと言うファイルができますので、Call Walkerを起動して、FILE(F)、
Inport Stack Fileからダイアログを起動して、先のファイルを読み込ませます。
左右のペインに分かれて、左に関数の依存関係を示すツリーが表示され、関数名
の最後には使用スタックサイズが表示されます。

ツールボタンを色々いじって、見方を変えてみて下さい。
但し、Call Walkerも万能では有りません。ソースコードから依存関係が判らな
い関数のスタックサイズまで計算に入れてくれませんので、その辺はユーザー
が見極めて計算する必要が有ります。

例えば、main関数実行中に、割り込みが入った場合等は、main関数のスタック
サイズと、割り込みの最大スタックサイズの合計が、必要スタックサイズとなり
ます。
この計算の詳細は、
『C言語でH8マイコンを使い・た・お・す』
http://www.amazon.co.jp/exec/obidos/ASIN/4274079643/249-4252163-8735531
を読んでくださいね。

HOS等のμITRON(RTOS)ならば、割り込みの初期はタスクスタックを使い、その後
割り込み専用のスタック領域に切り換えています。
この辺の切り換えでどの程度スタックを消費するかは、ベンダーに聞くか、ソース
コードから読み取ります。

------------------------------------------------------------
)^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^(
☆☆☆☆☆☆☆☆☆☆☆☆designed by hamayan☆☆☆☆☆☆☆☆☆
from はまやん
アドレスは
	webmaster@xxxxxxxxxxxxxxxx
URL
	http://hamayan.ddo.jp/~hamayan/so-net/
The Embeded Protocol Engine
    Call Walkerの解説も近々やりますね。
★★★★★★★★★end of message and thank you★★★★★★★

スレッド概略
[表示中](起点)
 └[4577(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]