[H8-ML(2233)] Re: RTOSとRAM サイズ
From: hamayan <hamayan@xxxxxxxxxxxxxxxx>
Date: 2002年09月27日(金)09時26分36秒
お世話になっています。hamayan です。

タスクで使用するスタックはどの様に使われるかを考えるとスタック
の見積もりをし易いんじゃあ無いでしょうか。

NORTi3と同じμITRON3.0仕様OSの HOSと、秋月のCコンパイラ(日立C
コンパイラver.2)での話しですが、まず、タスクの切替時にはC言語
の関数呼び出しで値の保証が必要なレジスタ、H8/300Hで秋月Cの場合
はER2からER7までのレジスタをスタック領域に待避します。
また、タスクの実行時にはタスク内部で使用する自動変数分、関数呼
び出しで使用する変数分、関数呼び出しで使用するスタック(これに
はシステムコールの呼び出し時も含まれます。)等が必要です。関数呼
び出しの場合は呼び出される関数の内、一番使用量が多い関数を選べ
ば良いでしょう。
更にRTOSに依りますが、割り込み時に一時的にタスクのスタック領域
を使用します。

関数呼び出しで使用するスタックはしょうがないにしても、自動変数
ならITRONのメモリプールを利用すれば RAM領域不足をある程度カバー
できそうです。

実際の所、H8/300Hの4Kbyteの RAM領域でもタスクを5、6個動かして
使っています。実際に試された方が話しが早いと思います。

但し、デバック時にはやはり外部に RAMを付けた方が便利です。
動いちゃえば要らなかったりするんですがね。

Ko> 今まで C 言語 (YellowSoft) で普通に開発してきたのですが,
Ko> 今度勉強がてら RTOS を使ってみようかと思っています。今の
Ko> ところ候補は YellowSoft の NORTi3 です。
Ko> 
Ko> が,マニュアルを読んでみると,「サンプルを動かすにはスタ
Ko> ックサイズを 10K バイト以上確保してください・・」と言う
Ko> ようなことが書いてあります。
Ko> 
Ko> これは,例えば 3048F の内蔵 RAM (4KB) だけで RTOS を使う
Ko> のはそもそも苦しい,と言うことでしょうか?

------------------------------------------------------------
)^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^()^o^(
☆☆☆☆☆☆☆☆☆☆☆☆designed by hamayan☆☆☆☆☆☆☆☆☆
from はまやん
アドレスは
	hamayan@xxxxxxxxxxxxxxxx
★★★★★★★★★end of message and thank you★★★★★★★

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


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


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