Fóruns: Ajuda (Thread #24927)

ヘッダファイルの記述について (2009-12-25 00:12 by toru-o #47571)

こんばんわ

おかげさまでちょいちょい使わせて頂いておりますが、使っているうちに、いまいちよくわからない点がいくつか出てきましたので質問させて頂きます:

・"sample.c"や"system.cfg"に記述するヘッダファイル名に関して、記述する必要/不必要の基準がよくわかりません。例えば、"h8_sci.h"や"ostimer.h"(ostimer.hはsample.cにはリストアップされてない)とか・・・

・これに関連して、sample.c内にある関数"Initialize(VP_INT exinf)について、この中に記述する初期化ルーチンと、例えばostimer.cという別ファイル内で初期化ルーチンを記述するのとは何か違いがあるのでしょうか?

きっと初歩的な質問だと思われるかもしれませんがどうぞよろしくお願い致します

Responder a #47571×

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: ヘッダファイルの記述について (2009-12-25 07:26 by m-arai #47575)

おはようございます。

久しぶりに首を突っ込めそうな話題が出ているので食いついてみます。

・必要/不必要
必要/不必要の基準は勿論、それに依存するかしないか=コンパイル/リンクできるかできないか、です。
sample.c、つまりアプリケーション本体のことを指してのことだと思いますが、
については、完全にそのプログラマの流儀次第でしょう。

system.cfgに関しては、system.cfgから生成されるkernel_cfg.c/kernel_id.h内で
必要とされる情報に依存します。
何らかのファイル中で定義される タスクエントリ、各種ハンドラ、ユーザ定義の定数等を
system.cfgで記述しますと、それらは上記のコンフィグレータ出力ファイルにそのまま書き出されます。
そうなった場合、これらのファイルをコンパイルするためには、その定義を参照しなければ
なりません。とはいえ、そんな事情はコンパイラもコンフィグレータも忖度しては
くれませんので、そのためにINCLUDE("\"~.h\"");で明示してやる必要があるのです。
結局これも、どうsystem.cfgをどう書くかによります。

・別ファイル
処理系にとって、ファイル構成はどうあろうと、コンパイル/リンクに必要な情報が全て揃って
いれば、結果として全く違いはありません。
本人、そしてそれを読む人が分かりやすく、再利用しやすい構成にするべきでしょう、という
一般論しか…。

ではでは、メリークリスマス。
Responder a #47571

Responder a #47575×

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: ヘッダファイルの記述について (2009-12-26 22:14 by toru-o #47595)

こんばんわ

御礼遅くなり申し訳ございません

わたしの情報元というか、hamayanさんの書籍と、どこかで紹介があった「Super Hで学ぶuITRON・・・」を元にあーでもない、こーでもない、とトライしながら、やっとhamayanさん書籍の半分くらいまで進んできて、今回の疑問に至った訳です

m-araiさんのご指摘のとおり、私はまだkernel_cfg.cあたりがまったくわかってないことがわかりました
hamayanさん書籍の後半にもそのような記述があるようなので、もっと修行しなおしですね

※その前にコード読解力、記述力がまだまだ甘いのかもしれません
 hamayanさん書籍内のソースが殆ど理解できてないというのもありますし・・・

という訳でもっと勉強して出直しです
また質問する機会があると思いますが、そのときはまたよろしくお願い致します

少し早いかもしれませんが、皆様よいお年を!
Responder a #47571

Responder a #47595×

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