Forums: Help (Thread #10952)

hamayanさん著・ITRONプログラミング入門 (2006-05-03 10:34 by Anonymous #21625)

遅ればせながら購入しました。
ITRONについて、実際のコードを示して解説してくれる
書物がなかったのでありがたいです。金田一氏著の
同名の書籍はRTOS&ITRON仕様解説は詳しいんですが、
実装解説ではないので、コーディングまでは遠くて
困ってました。
あと、HEWの使い方解説がホント助かります。
よくわからなかったんですよ。あれって。
ところで、2,3ご教示いただきたいことがあります。

Q1:sta_hos()の説明が見当たらないように思うんですが?
私が見落としてるのかもしれませんが?
ITRON仕様書にはATT_INI、CRE_TSK指定されたタスクの
起動についての記述はあるんですが、実装依存のsta_hos
からATT_INIに至るシーケンスの説明は是非欲しかった。
どこかにあったらご教示ください。


Q2:p261にHOS_IDL_STK(128,0xFe80);が登場します。
ここで、0xFe80の設定根拠について説明が無いようですが、
これってどこから設定すればいいのでしょう?
NULLとしてはだめなんでしょうか?


こういう質問とか感想はhamayanさんに直接メールしたほうが
いいのかよくわからなかったのですが、上のQ1,Q2はこの本
を初めて読む人が比較的多く疑問に持つのでは?と思いこちら
に投稿しました。

PS:
しかし、スタック解析ツールのないgccだけだと、
メモリプアな実行環境ターゲットの開発は難しすぎますね。
手計算でスタック計算なんてお手上げです。再認識しました。
開発ツールはHEWに移行する決心ができました。

Reply to #21625×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: hamayanさん著・ITRONプログラミング入門 (2006-05-03 12:28 by hamayan #21626)

A1:確かにsta_hosからの説明は抜けています。ちょっと説明不足ではあります。
で、こういった場合どうするかと言えば、ソースコードを読むんですね。sta_hosのソースコードを探すと、src/kernel/hos/sta_hos.cの中に入っています。そのコードの先頭でkernel_cfg_init()って関数を読んでいます。これが何処に在るかと言えば、もともとATT_INIが書かれているのはコンフィギュレーションファイルなので、展開先はkernel_cfg.cとkernal_id.hに限られるます。kernel_cfg.cを開いてみると、そこに在る訳です。

A2:アイドル状態のスタックですが、実行状態、実行可能状態のタスクが存在しない時、このアイドル状態を実行するのは本の中でも説明しています。
このアイドル中にも、勿論割り込みが入る可能性があるので、アイドル中に使用するスタックサイズ+割り込みハンドラの出入り口処理までのスタックサイズ分の領域を確保しておく必要があります。
しかし、261ページ以降で、スタックサイズの再計算を行っていますよ。

HEW、GCCはどちらも素晴らしい環境だと思います。
統合環境として上手く取りまとめているHEWと、常に最新のコンパイラを使うことが出来、また文法チェックもより厳しいGCC、両方使ってみるのが吉かと。
Reply to #21625

Reply to #21626×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

RE: hamayanさん著・ITRONプログラミング入門 (2006-05-03 20:48 by Anonymous #21639)

おお!早速著者様自らご解答賜りありがとうございます m(__)m
感動です。うるうる。

>こういった場合どうするかと言えば、ソースコードを
>読むんですね。

おっしゃるとおりです。でも、コード読むのって難しいので、
解説本を実費捻出して買ったわけでして(^_^;
この本でITRONに入門した身からすると、仕様を理解するのに精一杯で、
仕組みまで到達するのは随分遠いんです。

あと、HOS_IDL_STKに関しては、それが何かについては書籍から理解できました。
疑問を持ったのはアイドル状態のスタックをなぜ、0xFe80に決めうちしてるか?
についてです。0xFe80は一体どこから出てきたのかな?と。書籍の中で説明されてるのは、
その前の引数のスタックサイズに相当する128→68についてだけであったと
読み取りましたが?読みが浅いですか?サイズについての再計算は理解できました。
でも、スタックフレームの開始点に関しては仮決め値がそのまま引き継がれており、
これなら、手動指定するのでなくNULLでは駄目なのかとdocument/hos4cfg.txtを読んで
疑問を持った次第です。

>HEW、GCCはどちらも素晴らしい環境だと思います。
gccに関してはsunの68Kの時代から20年くらいつきあいがあるのですが、
H8のリモートデバッグでは、gdbにパッチをあてないといけないとか、
gdb、insight自体の安定性も含めて(よくフリーズしてました特にCygwinで)、コンパイラというより、
デバッグ環境に問題があります。Htermのソースデバッグの方がはるかに軽快で
安定しているという印象を持ってます。スタックに関してもOS無しの地下書きで
あまり気にしてなかったのですが、人様の作ったOSが下で走ってるとお手上げです。
Reply to #21625

Reply to #21639×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login

アイドルタスクの領域指定 (2006-05-03 23:27 by hamayan #21642)

すいません、先頭アドレスの話でしたね。
お察しの通り、NULLとしてしまっても構いません。

なんで領域アドレスを指定したんだっけなあ?。
Reply to #21625

Reply to #21642×

You can not use Wiki syntax
You are not logged in. To discriminate your posts from the rest, you need to pick a nickname. (The uniqueness of nickname is not reserved. It is possible that someone else could use the exactly same nickname. If you want assurance of your identity, you are recommended to login before posting.) Login