Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

電源立ち上げ時のOSイメージが呼びだされるまでの待ち時間にロゴ等を表示したい

43 views
Skip to first unread message

鏑木肆星

unread,
Sep 29, 2009, 8:55:01 PM9/29/09
to
おせわになります鏑木と申します。
現在,初めて組み込み機器用OSであるWindows CE
6.0のアプリケーションを開発しており、アプリケーションだけでなく、同時にOSの開発もしております。
そこで、OSの開発にて皆様にお聞きしたい難題にぶつかっており、こちらで質問をさせて頂きたく思いました。
現在のOSイメージが電源投入後から立ち上がるまでに約40秒程かかっております。この時点で皆様の過去のスレッドを拝見したところ、かなり時間がかかっているようで頭が痛いところではあります。
ですが、今回はそのことではなくOSイメージが立ち上がるまでに会社のロゴを表示したいと思い、その対処法をお聞きしたく質問致しました。
現在は、電源投入後、Windows CE
6.0というロゴが表示され、プログレスバーが右端まで到達すると、黒い画面にかわり、それから約40秒たって、OSが立ち上がります。この黒い画面中に、動作しているかどうかがわからないためロゴを表示したいということです。
書籍等を調べてみると、どうもブートローダを編集すればよいような気がしているのですが、具体的にどの位置を編集したらよいかが全くわからないでいます。
本来ならば、事前に講習を受けて、知識を得ていなければならないと思うのですが、その費用や時間がないために図々しくもこちらに質問させて頂きました。
参考となるご意見がありましたら、どうかご助力頂ければと思っております。
どうぞよろしくお願いいたします。
尚、開発環境は
Windows CE 6.0
Visual Studio 2005
です。

poi

unread,
Oct 4, 2009, 9:52:01 PM10/4/09
to
おはにちばんは

立ち上げ状況から推測するに、x86のPlatform でBIOS Loader(BLDR)を利用なされている。
と、見受けられますが、まず、これは正しいでしょうか?
であれば、画面が消えてからの処理が時間かかっていることのことですので、
ブートローダを修正しても、どうにもなりません。
この場合ブートローダは、プログレス画面を出してOSファイルの読み込みを行っていて、
画面が消えるというのは、もうOSの初期化が動き始めている。と、いうことでしょう。
ここからの時間はOSの初期化、ドライバの初期化の時間になります。

"鏑木肆星" からの元のメッセージ:

鏑木肆星

unread,
Oct 5, 2009, 4:19:01 AM10/5/09
to
poi様、ご回答ありがとうございます。

> 立ち上げ状況から推測するに、x86のPlatform でBIOS Loader(BLDR)を利用なされている。
> と、見受けられますが、まず、これは正しいでしょうか?
はい、正しいです。BIOS Loaderでフラッシュメモリ内のNK.binを読み込んでOSを立ち上げています。

> この場合ブートローダは、プログレス画面を出してOSファイルの読み込みを行っていて、
> 画面が消えるというのは、もうOSの初期化が動き始めている。と、いうことでしょう。
> ここからの時間はOSの初期化、ドライバの初期化の時間になります。

ブートローダ部分の修正では、画像を表示することができないのですか。。
私としては
[WINCE600\PUBLIC\COMMON\OAK\DRIVERS\STARTUI\starui.cpp]
のStartup_DlgProc()あたりがそうでないのかなと思っていました。
poi様はどのあたりを修正すればよいのか、ご存じでしょうか?
もしご存じでしたら、ご意見をいただくことは出来ませんでしょうか?

poi

unread,
Oct 5, 2009, 8:13:01 PM10/5/09
to
poiです。

[WINCE600\PUBLIC\COMMON\OAK\DRIVERS\STARTUI\starui.cpp]
は、ドライバの部分だと思っています。

ちなみにご存知かと思いますが、ブートローダーの最初の画面は
C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\DISKIMAGES
の中のsplash.bmxです。

"鏑木肆星" からの元のメッセージ:

鏑木肆星

unread,
Oct 6, 2009, 10:09:01 PM10/6/09
to
poi様、ご回答ありがとうございます。

[WINCE600\PUBLIC\COMMON\OAK\DRIVERS\STARTUI\starui.cpp]
はブートローダではなく、ドライバの部分なのですね。なるほど。

> ちなみにご存知かと思いますが、ブートローダーの最初の画面は
> C:\WINCE600\PLATFORM\CEPC\SRC\BOOTLOADER\BIOSLOADER\DISKIMAGES
> の中のsplash.bmxです。

poi様のおっしゃる箇所を調べてみたところ、確かにスプラッシュ画面について記述されているコード
splash.c,splash.hがありました。
splash.h内で定義されているsplash.bmpや、poi様のおっしゃるsplash.bmxというのはどこに
あるのでしょうか?検索してみてもなく、Windows
CEを立ち上げてルートディレクトリのWINOWSディレクトリ内を調べても見つけることが出来ませんでした。
また、これはCEPCをBSPに使用している場合に有効であって、その外のBSPを使用している場合には
意味がないのでしょうか?
現状ではGeode LXのBSPを使用しており、OS立ち上げ時のBIOSLoaderはCEPCのものを使用しています。
質問項目が多くなってしまいましたが、もし宜しければお答え願いませんでしょうか?

poi

unread,
Oct 7, 2009, 1:35:01 AM10/7/09
to
おはにちばんは

当初の”この黒い画面中に、動作しているかどうかがわからないためロゴを表示したいということです。”
からは、だんだん離れていますが、

splash.bmxは、お使いの起動ディスクにありませんか?
”BIOS Loaderでフラッシュメモリ内のNK.binを読み込んでOSを立ち上げています。

とのことですので、BIOS Loaderをおいたディスクです。

"鏑木肆星" からの元のメッセージ:

鏑木肆星

unread,
Oct 7, 2009, 2:19:02 AM10/7/09
to
poi様、ご回答ありがとうございます。

splash.cの編集をすれば、黒い画面内に指定のbmp画像が表示できるのではないかと思い、
先ほどsplash.bmxについて質問させて頂きました。
たしかに、biosloaderの起動ディスクであるフロッピー内にsplash.bmxがありました。
どうもこれは修正できるようなものではないみたいですね。。

私が質問させて頂いている黒い画面状態は、Windows CE 6.0というロゴがでてプログレスバー
が端までいってからの画面状態のことなので、ブートローダ読み込み後のOSの処理となると思うので、
スプラッシュ画面ではないような気がしてきました。
ということで、初めにpoi様がおっしゃるようにOSの初期化・ドライバの初期化の部分のようですね。
話が回り道して、はじめに戻ったようになりますが、ではOSの初期化等のコードが記述されている
箇所、そこを修正すればロゴを表示できるかもしれない箇所の検討はつきますでしょうか?
ご意見よろしくお願いいたします。

poi

unread,
Oct 7, 2009, 6:08:01 AM10/7/09
to
おはにちばんは

最初の話にもどりますが、ドライバの初期化の中なので、なかなか難しいと
思いますよ。
一番最初に思いつくのは、ビデオの初期化が終わった箇所で何か書くことです。
それ以前だと、画面に映りませんからね。
でも、特にx86だそうですので、ドライバのソースコードはお持ちじゃ
ないでしょう。ビデオドライバのソースは普通公開されていませんよね。


"鏑木肆星" からの元のメッセージ:

鏑木肆星

unread,
Oct 28, 2009, 1:56:05 AM10/28/09
to
ご返答が遅くなり、申し訳ございません。

ドライバーのソースコードはないですね。。
ちなみにバイオスローダー内のsplash.bmxファイルのbmxという拡張子は
なんなのかおわかりでしょうか?
どうもbmpファイルを圧縮させたファイルのようなのですが。
ためしに、OSのイメージファイルが入っているハードディスクに一緒に保存されているsplash.bmx
を削除し、splash.bmpにしてみたところ、
バイオスローダー読み込み時に表示されるWindows CEのロゴが変化はしたのですが
私が作成したbmpファイル(splash.bmpというファイルを作成し、ハードディスクに保存しました)
がかなりばけてしまった画像が表示されました。

poi

unread,
Oct 30, 2009, 3:02:01 AM10/30/09
to
おはにちばんは

もう解決しているかもしれませんが、
bincompress.exeで圧縮、復元ができます。
これはCE6の中に入っていますよ。
注意としては、あまり大きなBMPは表示できません。
それと横幅に注意が必要です。
ここら辺はブートローダのソースを読めばお分かりになるかと。

※読み込むときのバッファのサイズとか、画面を書いているときの
ループを抜ける判定とか。。

では

"鏑木肆星" からの元のメッセージ:

0 new messages