Forums: Help (Thread #3356)

パッチ・・・ (2003-09-12 11:23 by Anonymous #5858)

お世話になります。

1.
パッチからnmake用のファイル入手して、動作しました。
HEWのバージョンのせいか、
# オプション

LFLAGS = -FORM=Library=u
の「=」が気に入らないといいます。

2.気を取り直して、完成品の*.libのほうを使って、
  HEWのほうでパスを通してリンクしてみました。

すると、#include <windows.h>
がないと文句を言いますので、MS VC6.0のパスを入れると、
_WIN32用じゃないとだめ。

(Windows2000なので・・・)

気を取り直して、Borlandのほうのパスを入れると、
C:\borland\bcc55\Include\_stddef.h(65) : C1405 (W) Illegal #pragma syntax
などなど。

どうも、始まる前の部分で・・・

サンプルをビルドできない状況が続いています。

いかがでしょう・・・

Reply to #5858×

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: パッチ・・・ (2003-09-12 11:43 by hamayan #5862)

ちょっと待って下さい。
リリースファイルのサンプルを、こちらでもHEW2付属のコンパイラバージョン5でMakeしてみます。
Reply to #5858

Reply to #5862×

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: パッチ・・・ (2003-09-12 13:51 by hamayan #5865)

取り敢えず、手元でMakeして見て、問題の有ったファイルをPatchesに上げて置きましたので、適宜差し換えて、まずはコマンドラインでやって見て下さい。

環境依存な所を書き換え、有効なパスが通っていれば
make -f htc.mak
でsample.motが出来る筈です。
たった一行なので、IDE(HEW)をつかうより速く、簡単に出来ます。
Reply to #5862

Reply to #5865×

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: パッチ・・・ (2003-09-12 12:31 by Anonymous #5863)

恐れ入ります。

ところで、まだ不明瞭なことがあります。

つまり、Configuratorの件は、どうなってしまうのでしょうか?

またこのビルドでは、libが得られますが、
ヘッダーをインクルードしておけば、
関数をlibからリンクして利用できるようになり、
つまりは、OSを外部関数として利用できるということで
しょうか?

結果、libが構築できれば、とりあえず、HEWで
OS環境を使えるわけでしょうか?

また、反対に、OS環境に対して仮に理解ができていれば、
このMake以前のソースに手を加えることで、なんらかの
改造(どんなかは別)が可能になるので、当然、
OSのソースは有効活用できる・・・?

ちょっと、つかみ所のない質問ですが・・
Reply to #5858

Reply to #5863×

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: パッチ・・・ (2003-09-12 13:37 by m-arai #5864)

簡単に言えば、コンフィグレータというのは、コンフィグ
レーションファイルを元に、OSおよびアプリケーションで
用いられるIDの定義やオブジェクトの初期化部を自動
生成してくれるものです。

system.cfg → kernel_cfg.c , kernel_id.h

kernel_id.h、kernel_cfg.cに相当するものを人力で
記述することも当然可能ですが、よほど何か特殊な要求
があるのでもない限りメリットは無いですし、
コンフィグレータに任せた方がいろいろな点で楽です。

カーネルライブラリには、OSのコンフィグレーションに
よらない初期化部、全てのサービスコールが含まれてい
ますので、OSを使ったプログラムの実行形式作成に
必要です。

勿論、完全なソースが付属していますから、依存関係を
把握し、必要なMakefileを書き、全てソースから
コンパイル、アセンブルすることも可能ですが、あまり
意味のあることではないでしょう。
カーネルライブラリをリンクすれば良いと思います。

ソースの意義は、読めば実際に何が行われているのかを
知ることが出来ること、個々の必要に応じて改造する
ことが出来ること、バグを発見したり修正することも
出来るということ、等にあるでしょう。
#バグ発見や修正の報告は喜ばれるでしょう。

アプリケーションプログラムにおいてHOSへの管理
移行は、sta_hos()を呼び出すことにより行われます。

正しくkernel_id.h/kernel_cfg.cが生成され、
kernel_cfg.oがリンクオブジェクトに加えられて、
適切にsta_hos()のサブルーチンコールがプログラム中
で行われていれば、リンクライブラリとしてHOSのカーネル
ライブラリを指定することで、OSの全ての機能を利用する
ことが出来る筈です。

ITRONについては、仕様書が無料で公開されていますので、
それをまず読んでみてください。HOS依存以外で必要な
ことは全て書かれています。

http://www.ertl.jp/ITRON/SPEC/mitron4-j.html
Reply to #5863

Reply to #5864×

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: パッチ・・・ (2003-09-12 13:58 by hamayan #5866)

>またこのビルドでは、libが得られますが、
>ヘッダーをインクルードしておけば、
>関数をlibからリンクして利用できるようになり、
>つまりは、OSを外部関数として利用できるということで
>しょうか?

そうです。ライブラリとしてOSの機能を呼んでいるのです。近づいて来ましたね。

コンフィギュレーターは、m-araiさんが説明されていた通りです。
アプリケーション作成時に、プログラマがコードを書かなくても明示的に生成できる所は、自動化してしまおうと言う魂胆です。
これは楽をすると言う以外に、記述ミスを防いでくれます。
Reply to #5863

Reply to #5866×

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