(toppers-users 3425) タスクスタックの状況を確認するためのシステムコール実現の御提案
Shinichiro Nakamura
shinta.main.jp @ gmail.com
2011年 4月 18日 (月) 07:00:53 JST
素朴な疑問なのですが、皆様はタスクスタックの状況確認をどのように行なっていらっしゃいますでしょうか?
ふと疑問に思い調べてみたところ、標準のシステムコールではできないとの判断に至りました。
これは、非依存部にはスタックの先頭アドレスとサイズのみが保存され、依存部にスタックポインタをおくためです。
とにかくOSの機能として実現してみたかったので、いい加減な名前を付けて非依存部のスタック先頭アドレスと依存部のスタックポインタを使って取得する機能を作ってみたところ、意外に具合が良いです。
http://shinta-main-jp.blogspot.com/2011/04/toppersquick-and-dirty.html
確かに「見積り」と称してて手計算するというのもアリかもしれませんが、私にとっては魅力的ではありません。
人手で抽出しようとすると、漏れや思い込みがありますし、時間がかかるからです。
商用ツールにその領域を譲っているという見方もできますが、それはTOPPERS自身の魅力ではなくなってしまいます。
そこで、タスクスタックの状況を確認するためのシステムコール実現を1ユーザの立場から提案したいと考えです。
これにより、
「スタックの余裕度をある程度判断できる」
「誤った実装によるRAM消費などを未然に確かめることができる」
などの効果が期待できます。
また、上記効果によってTOPPERSを採用するシステムの安定性が結果的に向上し、更なるユーザを獲得できるのではと考えております。
私の現状の実装は、依存部にあるタスクコンテキストブロックp_tcb->tskctxbを参照していますので極めて不適切な状態ですが、何らかの方法で同様の機能をカーネルに入れることは可能ではないでしょうか?
TOPPERSは触ってみると楽しい道具です。
沢山のOSが組み込み市場に流れてくる中で開発者も流動的になっていますから、
システムの安定性や作りやすさ、導入時の利便性を兼ね備えた機能がTOPPERSに加わり、
厳しい組み込みOS市場で多くの開発者とユーザを獲得して頂ければ個人的には嬉しい限りです。
皆様とご意見やナレッジなどを共有させて頂ければ幸いです。
中村晋一郎
P.S.
これは本当に余計な話ですが、シェルなんかも標準で入っていると嬉しいです。
(シェルのないOSって便利なデバッグ用環境をどう構築して良いかわかりませんよね。)
http://shinta-main-jp.blogspot.com/2011/03/natural-tiny-shell-nt-shell.html
http://shinta-main-jp.blogspot.com/2011/03/natural-tiny-shellnt.html
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.toppers.jp/pipermail/users/attachments/20110418/465a4ada/attachment.html>