Armadilloフォーラム

windows embedded compact 7 へのアプリケーションの登録方法について

k.nishijo

2018年1月9日 9時49分

西條と申します。

掲題の件について、
自作のアプリケーションをWindows Embedded Compact7にインストール後も、
電源をリセットすると自作アプリが消えてしまうのですが、どのようにすれば消えずに残った状態になるのでしょうか?
ご教示ください。

コメント

shkoga

2018年1月9日 10時34分

こんにちは。サムシングプレシャスの古賀です。

西條さん:
>自作のアプリケーションをWindows Embedded Compact7にインストール後も、
>電源をリセットすると自作アプリが消えてしまうのですが、どのようにすれば消えずに残った状態になるのでしょうか?
>ご教示ください。

電源リセットで消えてしまうのは、RAMFS 上にインストールされているからですね。デフォルトでは、WEC の /Windows ディレクトリは RAMFS 上に作成されます。そのため、CAB ファイルなどから /Windows ディレクトリ配下にアプリケーションをインストールしても、消えてしまうのです。

消えずに残るようにするには、次のいずれかの方法をお使い下さい:

・永続記憶域にアプリケーションを配置する。
 :FATFS フォーマットの USB メモリを Armadillo-840 に装着すれば、USB MSC クラスドライバと、Armadillo-8x0 用の USB ホストドライバが組み込まれた OS イメージの WEC では、"Hard Disk" というような名前のボリュームとしてマウントされます。この中にアプリケーション(.exe)を配置しておけば、そこから起動できます。

・OS イメージにアプリケーションを組み込む。
 :OS Design プロジェクトの .bib ファイル(OSDesign.bib)に、組み込みたいアプリケーションの .exe のエントリを記述して OS イメージをビルドすれば、その .exe が OS イメージに組込まれ、起動後は、/Windows ディレクトリ直下に出現します。

.bib ファイルの書式や記述例については、MSDN にあるリファレンスの、次のページをご覧ください。

 Binary Image Builder (.bib) File (Compact 7)
 https://msdn.microsoft.com/en-us/library/ee478797(v=winembedded.70).aspx

以上、参考になりましたら幸いです。

k.nishijo

2018年1月9日 15時08分

古賀様

西條です。お世話になります。

OSDesign.bibにexeをセットしてOSイメージをビルとしてみましたが以下のエラーが発生します。

D:\WINCE700\build.log(6878) : Error: only 4k page alignments supported at this time, found in module SmartDeviceProject7.exe {log="D:\WINCE700\build.log(6878)"}

本件の対処法についてご教示ください。

> こんにちは。サムシングプレシャスの古賀です。
>
> 西條さん:
> >自作のアプリケーションをWindows Embedded Compact7にインストール後も、
> >電源をリセットすると自作アプリが消えてしまうのですが、どのようにすれば消えずに残った状態になるのでしょうか?
> >ご教示ください。
>
> 電源リセットで消えてしまうのは、RAMFS 上にインストールされているからですね。デフォルトでは、WEC の /Windows ディレクトリは RAMFS 上に作成されます。そのため、CAB ファイルなどから /Windows ディレクトリ配下にアプリケーションをインストールしても、消えてしまうのです。
>
> 消えずに残るようにするには、次のいずれかの方法をお使い下さい:
>
> ・永続記憶域にアプリケーションを配置する。
>  :FATFS フォーマットの USB メモリを Armadillo-840 に装着すれば、USB MSC クラスドライバと、Armadillo-8x0 用の USB ホストドライバが組み込まれた OS イメージの WEC では、"Hard Disk" というような名前のボリュームとしてマウントされます。この中にアプリケーション(.exe)を配置しておけば、そこから起動できます。
>
> ・OS イメージにアプリケーションを組み込む。
>  :OS Design プロジェクトの .bib ファイル(OSDesign.bib)に、組み込みたいアプリケーションの .exe のエントリを記述して OS イメージをビルドすれば、その .exe が OS イメージに組込まれ、起動後は、/Windows ディレクトリ直下に出現します。
>
> .bib ファイルの書式や記述例については、MSDN にあるリファレンスの、次のページをご覧ください。
>
>  Binary Image Builder (.bib) File (Compact 7)
>  https://msdn.microsoft.com/en-us/library/ee478797(v=winembedded.70).aspx
>
>
> 以上、参考になりましたら幸いです。
>

ファイル ファイルの説明
OSDesign.bib_.txt

shkoga

2018年1月9日 15時32分

こんにちは。サムシングプレシャスの古賀です。

西條さん:
>OSDesign.bibにexeをセットしてOSイメージをビルとしてみましたが以下のエラーが発生します。
>
>D:\WINCE700\build.log(6878) : Error: only 4k page alignments supported at this time, found in module SmartDeviceProject7.exe {log="D:\WINCE700\build.log(6878)"}
>
>本件の対処法についてご教示ください。

添付して頂いた OSDesign.bib ファイルの内容を拝見したところ、'SmartDeviceProject7.exe' を MODUILES セクションに記載していらっしゃいますが、これが原因です。MODULES セクションではなく、FILES セクションに記載して下さい。

上記のエラーメッセージは、僕も初めて見ましたので、
 only 4k page alignments supported atthis time
で Google 検索してみたところ、MSDN のフォーラムにある、以下のページがヒットしました:
 https://social.msdn.microsoft.com/Forums/en-US/addbd867-e791-484d-9c2a-…

k.nishijo

2018年1月9日 16時52分

古賀様

西條です。
お世話になります。

本件、ご指摘の点を修正したところエラーがなくなりましたのでビルトしたOSをアルマジロにダウンロードしてみましたが、
compact7上には自作アプリ'SmartDeviceProject7.exe'はどこにも配置されていないようです。
何かわかるようでしたらご教示ください。

※ちなみに、exeはC#で作成したものでCompact7上で実行できることは一様、確認いたしました。

よろしくお願いします。

> こんにちは。サムシングプレシャスの古賀です。
>
> 西條さん:
> >OSDesign.bibにexeをセットしてOSイメージをビルとしてみましたが以下のエラーが発生します。
> >
> >D:\WINCE700\build.log(6878) : Error: only 4k page alignments supported at this time, found in module SmartDeviceProject7.exe {log="D:\WINCE700\build.log(6878)"}
> >
> >本件の対処法についてご教示ください。
>
> 添付して頂いた OSDesign.bib ファイルの内容を拝見したところ、'SmartDeviceProject7.exe' を MODUILES セクションに記載していらっしゃいますが、これが原因です。MODULES セクションではなく、FILES セクションに記載して下さい。
>
> 上記のエラーメッセージは、僕も初めて見ましたので、
>  only 4k page alignments supported atthis time
> で Google 検索してみたところ、MSDN のフォーラムにある、以下のページがヒットしました:
>  https://social.msdn.microsoft.com/Forums/en-US/addbd867-e791-484d-9c2a-…
>

shkoga

2018年1月9日 17時05分

こんにちは。サムシングプレシャスの古賀です。

西條さん:
>本件、ご指摘の点を修正したところエラーがなくなりましたのでビルトしたOSをアルマジロにダウンロードしてみましたが、
>compact7上には自作アプリ'SmartDeviceProject7.exe'はどこにも配置されていないようです。
>何かわかるようでしたらご教示ください。

不思議ですね。確認ですが、作成された OS イメージ(nk.bin)を、Platform Builder/Visual Studio 2008 で開いて内容を見ると、どうなっているでしょうか?

以下のページは、WinCE 6.0 向けですが、WEC 7 の場合も、同様に Platform Builder プラグインをインストール済みの Visual Studio では、nk.bin を開くことができ、OS イメージ内のレジストリ設定内容や、収録されているファイルの一覧を見ることができます:
 https://msdn.microsoft.com/en-us/library/ee481840(v=winembedded.60).aspx

以上、参考になりましたら幸いです。

k.nishijo

2018年1月10日 8時32分

古賀様

西條です。
お世話になります。

NK.binの中身を確認しましたが自作アプリがあることは確認できました。
属性のところにRSCとありますが、この意味が当方ではGoogle検索でもわかりません。
隠しファイルになっているということでしょうか?
よろしくお願いします。

> こんにちは。サムシングプレシャスの古賀です。
>
> 西條さん:
> >本件、ご指摘の点を修正したところエラーがなくなりましたのでビルトしたOSをアルマジロにダウンロードしてみましたが、
> >compact7上には自作アプリ'SmartDeviceProject7.exe'はどこにも配置されていないようです。
> >何かわかるようでしたらご教示ください。
>
> 不思議ですね。確認ですが、作成された OS イメージ(nk.bin)を、Platform Builder/Visual Studio 2008 で開いて内容を見ると、どうなっているでしょうか?
>
> 以下のページは、WinCE 6.0 向けですが、WEC 7 の場合も、同様に Platform Builder プラグインをインストール済みの Visual Studio では、nk.bin を開くことができ、OS イメージ内のレジストリ設定内容や、収録されているファイルの一覧を見ることができます:
>  https://msdn.microsoft.com/en-us/library/ee481840(v=winembedded.60).aspx
>
> 以上、参考になりましたら幸いです。
>

ファイル ファイルの説明
NK_BINの中身.png
OSDesign.bib (2).txt

shkoga

2018年1月10日 9時22分

こんにちは。サムシングプレシャスの古賀です。

西條さん:
>NK.binの中身を確認しましたが自作アプリがあることは確認できました。
>属性のところにRSCとありますが、この意味が当方ではGoogle検索でもわかりません。
>隠しファイルになっているということでしょうか?

R は分からないのですが、S と C は、それぞれ、System と Compressed を意味しています。これらは、.bib ファイルの書式のリファレンスで説明されている、Type フィールドの 'S' と 'C' に対応しています:
 https://msdn.microsoft.com/en-us/library/ee479140(v=winembedded.70).aspx
 https://msdn.microsoft.com/en-us/library/ee479063(v=winembedded.70).aspx

隠しファイルにする場合(エクスプローラのデフォルト設定では、エクスプローラに表示されないようにする場合)は、'H' を指定します。

アプリケーションを実行できない件ですが、現状 Type フィールドの指定が S のみになっていますので、これを、SU に変えてみて下さい。FILES セクションに記載したファイルは、OS イメージに格納される際、デフォルトでは C 指定となり、圧縮されて格納されます。しかし、圧縮されてしまうと、WEC の loader が .exe を実行できなくなってしまうので、U を指定し、圧縮されないようにする必要があります。

# 現状の設定のままの OS イメージでも、WEC の起動後、/Windows ディレクトリ下から
# SmartDeviceProject.exe を別のディレクトリへ CopyFile() などでコピーして、コピーした
# 方の .exe を実行すれば(※コピーする際に、WEC カーネルが伸長してくれるので)、
# 問題なく動作するのではないかと思います。

k.nishijo

2018年1月10日 14時08分

古賀様

西條です。
お世話になります。

本件、ご指摘の修正方法にて、自作アプリがWEC内で消えないで残るようになりました。

ありがとうございます。

以上よろしくお願いします。

> こんにちは。サムシングプレシャスの古賀です。
>
> 西條さん:
> >NK.binの中身を確認しましたが自作アプリがあることは確認できました。
> >属性のところにRSCとありますが、この意味が当方ではGoogle検索でもわかりません。
> >隠しファイルになっているということでしょうか?
>
> R は分からないのですが、S と C は、それぞれ、System と Compressed を意味しています。これらは、.bib ファイルの書式のリファレンスで説明されている、Type フィールドの 'S' と 'C' に対応しています:
>  https://msdn.microsoft.com/en-us/library/ee479140(v=winembedded.70).aspx
>  https://msdn.microsoft.com/en-us/library/ee479063(v=winembedded.70).aspx
>
> 隠しファイルにする場合(エクスプローラのデフォルト設定では、エクスプローラに表示されないようにする場合)は、'H' を指定します。
>
> アプリケーションを実行できない件ですが、現状 Type フィールドの指定が S のみになっていますので、これを、SU に変えてみて下さい。FILES セクションに記載したファイルは、OS イメージに格納される際、デフォルトでは C 指定となり、圧縮されて格納されます。しかし、圧縮されてしまうと、WEC の loader が .exe を実行できなくなってしまうので、U を指定し、圧縮されないようにする必要があります。
>
> # 現状の設定のままの OS イメージでも、WEC の起動後、/Windows ディレクトリ下から
> # SmartDeviceProject.exe を別のディレクトリへ CopyFile() などでコピーして、コピーした
> # 方の .exe を実行すれば(※コピーする際に、WEC カーネルが伸長してくれるので)、
> # 問題なく動作するのではないかと思います。
>