yokota
2015年7月28日 15時38分
横田と申します。
Armadillo-440のWindows Embedded COMPACT 7 のHOW TO を試し、
Armadillo-440の画面にWindows Embedded COMPACT 7の画面が表示されました。
(http://armadillo.atmark-techno.com/howto/try-windows-embedded-on-armadi…)
HOW TOではここまでなのですが、
Visual Studio 2008でアプリケーションを作成する方法(プロジェクトの作り方)がわかりません。
調べたところ下記の方法で開発できるようなのですが・・・
①Platform Builder上でサブプロジェクトとして開発する方法(C++)
②通常のデスクトップWindows向けアプリケーションのように開発する方法(C#、VB)
②の方法でVB(Visual Basic)で開発したいと思っています。
質問1
上記②におけるプロジェクトの作り方
質問2
Vertual PCを使うのかどうかわかりませんが、
開発環境でのデバッグ方法
質問3
Armadillo-440上でデバッグする方法
最終的にはSDカード等にboot.binのようなファイルを書き込むと思うのですが
書き込まずにデバッグする方法はあるのでしょうか?
Windows Embedded 初心者です。
以上よろしくお願いします。
コメント
yokota
サムシングプレシャス 古賀 様
回答ありがとうございます。
前回教えていただいた資料よりC++でプロジェクトを作成した場合問題なくUSBメモリ経由でArmadillo上で実行できることを確認しました。
また、Ethernet 経由でのデバッグは下記のファイルを使用する方法でうまくいきました。
Clientshutdown.exe
ConmanClient2.exe
CMaccept.exe
eDbgTL.dll
TcpConnectionA.dll
> なお、Platform Builder を使って、ご自分で OS イメージを作成される場合は、デバッグ用のファイルを OS イメージに含めてしまうと、WEC 7 を起動し直すたびにファイルをコピーする必要がなくなり、手間が減ります。
上記の方法はまだ試していません。
ここからが質問です--------------------------------------
VBでプロジェクトを作成するとき(添付図1、2)
ターゲットプラットフォームの選択はWindows CEでよいのでしょうか?
とりあえずWindows CEでプロジェクトを作成すると
VS2008の ツール → オプション → デバイスツール → デバイス の画面は添付図3のようになります。
ここで添付図4のように設定してOKを押しても再度開くと添付図3になります。
C++でプロジェクトを作成した時はウィザードでSDKの選択がありましたがVBの時にはありませんでした。
プロジェクトの作り方が間違っている感じなのですが どこを修正すればよいかわかりません。
以上よろしくお願いします。
ファイル | ファイルの説明 |
---|---|
新しいプロジェクト.png | 図1 新しいプロジェクト |
スマートデバイス.png | 図2 スマートデバイス |
オプション.png | 図3 オプション |
オプション1.png | 図4 オプション |
shkoga
サムシングプレシャスの古賀です。
yokotaさん(2015/07/29 - 13:54):
>前回教えていただいた資料よりC++でプロジェクトを作成した場合問題なくUSBメモリ経由でArmadillo上で実行できることを確認しました。
>また、Ethernet 経由でのデバッグは下記のファイルを使用する方法でうまくいきました。
>Clientshutdown.exe
>ConmanClient2.exe
>CMaccept.exe
>eDbgTL.dll
>TcpConnectionA.dll
ネイティブコードのアプリケーションについては、リモートデバッグまで確認できたということですね。
>ここからが質問です--------------------------------------
>VBでプロジェクトを作成するとき(添付図1、2)
>ターゲットプラットフォームの選択はWindows CEでよいのでしょうか?
いえ。インストールした SDK を選択して下さい。添付して頂いた図では、Armadillo-440 用の SDK が「ターゲットプラットフォーム」一覧にありませんが、これは、デモ版 OS イメージと評価版 BSP のアーカイブに収録している SDK が、マネージドコード対応になっていないためだと思われます。ごめんなさい。
デモ版 OS イメージには、.NET Compact Framework を含めておらず、そのため、その OS イメージに対応する SDK にも、マネージドコード対応が含まれていません。マネージドコード非対応の SDK であるため、VB のプロジェクトを作成する際、「ターゲットプラットフォーム」の一覧に現れない、というわけです。前回 post した際、そのことを見落としていました。
Armadillo-440 で動かす WEC 7 で、VB アプリケーションの実行やリモートデバッグを可能にするためには、ご自分で OS Design プロジェクトを作成し、.NET Compact Framework を含めて頂いたうえで、マネージドコード対応を含めた SDK を作って頂く必要があります。
> とりあえずWindows CEでプロジェクトを作成すると
> VS2008の ツール → オプション → デバイスツール → デバイス の画面は添付図3のようになります。
>
>ここで添付図4のように設定してOKを押しても再度開くと添付図3になります。
>C++でプロジェクトを作成した時はウィザードでSDKの選択がありましたがVBの時にはありませんでした。
> プロジェクトの作り方が間違っている感じなのですが どこを修正すればよいかわかりません。
というわけで、VB のプロジェクトの作り方が間違っているわけではなく、お使いのデモ版 OS イメージと SDK がマネージドコード(.NET CF)非対応なのが原因です。申し訳ありません。お手数ですが、評価版(無償版)の BSP を使って、ご自分で WEC 7 の OS Design プロジェクトを作ってみて頂けますか。
以上、不明な点などありましたら、お知らせ下さい。
--
古賀信哉 (株)サムシングプレシャス
yokota
サムシングプレシャス 古賀様
回答ありがとうございます。
>ネイティブコードのアプリケーションについては、リモートデバッグまで確認できたということですね。
はい。確認できました。
> Armadillo-440 で動かす WEC 7 で、VB アプリケーションの実行やリモートデバッグを可能にするためには、ご自分で OS Design プロジェクトを作成し、.NET Compact Framework を含めて頂いたうえで、マネージドコード対応を含めた SDK を作って頂く必要があります。
まず、下記README.TXTを参照して
\armadillo\WEC7-440-評価版\winec7-a440_460\AM440-7_1.0.4\README.TXT
Core OS
Windows Embedded Cmpact
Communication Services and Networking
Networking - General
★ Network Utilities (IpConfig, Ping, Route)
Networking - Local Area Network (LAN)
★ Wired Local Area Network (802.3, 802.5)
・
・
・ (省略)
・
・
・
Third Party
BSP
AM440: ARMV5
Device Drivers
Backlight
★ LCD Backlight
USB Devices
USB High Speed OTG Device
★ High Speed OTG Port Pure Host Function
USB Host Device
★ High Speed Host Port Function
上記に加えCatalog Items View の
アプリケーションとサービスの開発
.NET Compact Framework 3.5
★ .NET Compact Framework 3.5
にチェックを入れOSデザインをビルドし正常にビルドできました。
その後、SDKs → ADD NEW SDK ...
General のSDK NAME、Product Name、Company Name、Company Website を入力し
CPU Families では ARMV5 AM440ARMV5 Release を選択
SDKのビルドを行うと下記のエラーが出ます。
開発環境のパソコンが64Bit のWindows7なのですが何か関係ありますでしょうか?
C:\WINCE700\build.log(15) : Error: CreateFile failed to open "C:\WINCE700\OSDesigns\OSDesign_vb\OSDesign_vb\SDKs\SDK1\obj\SDK1\Include\ARMv4I\advpub.h" , Err = 32 {log="C:\WINCE700\build.log(15)"}
C:\WINCE700\build.log(18) : Error: adding sysgen'ed headers and libs {log="C:\WINCE700\build.log(18)"}
C:\WINCE700\build.log(19) : Error: rolling toolkit-specific files {log="C:\WINCE700\build.log(19)"}
Error: GenSdk build error: プロセスはファイルにアクセスできません。別のプロセスが使用中です。 (HRESULT からの例外: 0x80070020) {log="C:\WINCE700\build.log(20)"}
C:\WINCE700\OSDesigns\OSDesign_vb\OSDesign_vb\SDKs\SDK1\SDK1.sdkcfg - 4 error(s), 0 warning(s)
========== ビルド: 0 正常終了または最新の状態、1 失敗、0 スキップ ==========
上記のREADME.TXTでは下記の記載がありますが
Armadillo-420 の場合は -----------------------------------------------ここから--------------
※Armadillo-420 の場合は、以下のことを行って下さい:
・上に挙げたカタログ項目のうち、
Third Party
BSP
AM440: ARMV5
Device Drivers
Backlight
★ LCD Backlight
の選択を解除して下さい。
・次のカタログ項目を、追加で選択して下さい。
Core OS
Windows Embedded Cmpact
Core OS Services
Debugging Tools
★ Remote Display Application
Third Party
BSP
AM440: ARMV5
★ A420 CPU Board
・Platform Builder の環境変数設定で、環境変数 BSP_DISPLAY_CER を1に設定して下さい。この設定により、「リモートディスプレイ」ドライバが組み込まれ、TCP/IP 経由で、PC から遠隔操作することができます。「リモートディスプレイ」機能の使い方については、弊社の Web サイトにある、以下のページの説明をご覧ください:
http://www.stprec.co.jp/ceblog/2011/12/29/
http://www.stprec.co.jp/ceblog/2012/01/04/
----------------------------------------------------------------------------ここまで ですか?-------------
・Platform Builder の環境変数設定で、環境変数 BSP_DISPLAY_CER を1に設定して下さい。この設定により、「リモートディスプレイ」ドライバが組み込まれ、TCP/IP 経由で、PC から遠隔操作することができます。「リモートディスプレイ」機能の使い方については、弊社の Web サイトにある、以下のページの説明をご覧ください:
環境変数設定の設定する箇所がわかりません。
shkoga
サムシングプレシャスの古賀です。
yokotaさん(2015/08/02 - 17:22):
>>ネイティブコードのアプリケーションについては、リモートデバッグまで確認できたということですね。
>
>はい。確認できました。
了解しました。
>まず、下記README.TXTを参照して
>\armadillo\WEC7-440-評価版\winec7-a440_460\AM440-7_1.0.4\README.TXT
…
>上記に加えCatalog Items View の
>アプリケーションとサービスの開発
> .NET Compact Framework 3.5
>★ .NET Compact Framework 3.5
>
>にチェックを入れOSデザインをビルドし正常にビルドできました。
>
>
>その後、SDKs → ADD NEW SDK ...
>General のSDK NAME、Product Name、Company Name、Company Website を入力し
>CPU Families では ARMV5 AM440ARMV5 Release を選択
>
>SDKのビルドを行うと下記のエラーが出ます。
>開発環境のパソコンが64Bit のWindows7なのですが何か関係ありますでしょうか?
CPU Families に "ARMV5 AM440ARMV5 Release" が出るということは、OS Design プロジェクトで Release ビルドをアクティブにしていらっしゃる(かつ、OS Design の Release ビルドを完了した状態で SDK をビルドしていらっしゃる)と思いますので、その点は、問題なさそうですね。Win 7 64bit でも、問題ありません(弊社環境も同じです)。
>C:\WINCE700\build.log(15) : Error: CreateFile failed to open "C:\WINCE700\OSDesigns\OSDesign_vb\OSDesign_vb\SDKs\SDK1\obj\SDK1\Include\ARMv4I\advpub.h" , Err = 32 {log="C:\WINCE700\build.log(15)"}
>C:\WINCE700\build.log(18) : Error: adding sysgen'ed headers and libs {log="C:\WINCE700\build.log(18)"}
>C:\WINCE700\build.log(19) : Error: rolling toolkit-specific files {log="C:\WINCE700\build.log(19)"}
>Error: GenSdk build error: プロセスはファイルにアクセスできません。別のプロセスが使用中です。 (HRESULT からの例外: 0x80070020) {log="C:\WINCE700\build.log(20)"}
>C:\WINCE700\OSDesigns\OSDesign_vb\OSDesign_vb\SDKs\SDK1\SDK1.sdkcfg - 4 error(s), 0 warning(s)
>========== ビルド: 0 正常終了または最新の状態、1 失敗、0 スキップ ==========
いくつか確認させて下さい。
・上記のエラーが出た後、次のことを行っても状況は変わらないでしょうか?
1.) VS 2008 を終了する。
2.) エクスプローラのウィンドウ(フォルダウィンドウ)が開いていれば、全て閉じる。
3.) VS 2008 を起動し直し、OS Design プロジェクトを開いて、SDK をビルドする。
・"Visual Studio 2008 update for Windows Embedded Compact 7" はインストール済みでしょうか?
http://www.microsoft.com/en-us/download/details.aspx?id=11935
まだインストールしていらっしゃらなければ、インストールして試してみて下さい。
←これをインストールされたら、念のため、次のアップデータもインストールして下さい:
Windows Embedded Compact 7 ATL Update for Visual Studio 2008 SP1
http://www.microsoft.com/en-us/download/details.aspx?id=27729
次に、環境変数を設定する方法です。
>上記のREADME.TXTでは下記の記載がありますが
>Armadillo-420 の場合は -----------------------------------------------ここから--------------
>
>※Armadillo-420 の場合は、以下のことを行って下さい:
…
>・Platform Builder の環境変数設定で、環境変数 BSP_DISPLAY_CER を1に設定して下さい。この設定により、「リモートディスプレイ」ドライバが組み込まれ、TCP/IP 経由で、PC から遠隔操作することができます。「リモートディスプレイ」機能の使い方については、弊社の Web サイトにある、以下のページの説明をご覧ください:
> http://www.stprec.co.jp/ceblog/2011/12/29/
> http://www.stprec.co.jp/ceblog/2012/01/04/
>
>----------------------------------------------------------------------------ここまで ですか?-------------
はい、そうです。
>・Platform Builder の環境変数設定で、環境変数 BSP_DISPLAY_CER を1に設定して下さい。この設定により、「リモートディスプレイ」ドライバが組み込まれ、TCP/IP 経由で、PC から遠隔操作することができます。「リモートディスプレイ」機能の使い方については、弊社の Web サイトにある、以下のページの説明をご覧ください:
>
>環境変数設定の設定する箇所がわかりません。
次の手順で行ってください:
1.) VS 2008/Platform Builder の Solution Explorer で、OS Design のアイコンを右クリックしてポップアップメニューを開き、[Properties] を選択する。(または、Solution Explorer で OS Design のアイコンをクリックして選択状態にしたのち、[Project] > [Properties] メニューを選択する。)
2.) " Property Pages" というタイトルのダイアログが開くので、このダイアログの左端部にあるツリービューで、"Configuratin Properties" をクリックして展開し、その配下にある "Environment" をクリックして選択する。
3.) (2)のダイアログの右端にあるビューの内容が "Environment variables:" というビューになるので、このビューの "New..." ボタンをクリックして "Environment Variable" ダイアログを開き、設定したい環境変数を追加する。
MSDN の WEC 7 エリアにある、Developer Guide および Reference の、次のページも参考になるかと思います:
・Developer Guides
OS Design Configuration Properties (Compact 7)
https://msdn.microsoft.com/en-us/library/jj200441(v=winembedded.70).aspx
・Reference
OS Design Property Pages Dialog Box (Compact 7)
https://msdn.microsoft.com/en-us/library/ee482611(v=winembedded.70).aspx
--
古賀信哉 (株)サムシングプレシャス
yokota
サムシングプレシャス 古賀様
回答ありがとうございます。
> ・上記のエラーが出た後、次のことを行っても状況は変わらないでしょうか?
> 1.) VS 2008 を終了する。
> 2.) エクスプローラのウィンドウ(フォルダウィンドウ)が開いていれば、全て閉じる。
> 3.) VS 2008 を起動し直し、OS Design プロジェクトを開いて、SDK をビルドする。
状況は変わらずでした。
> ・"Visual Studio 2008 update for Windows Embedded Compact 7" はインストール済みでしょうか?
> http://www.microsoft.com/en-us/download/details.aspx?id=11935
インストール済みです。
> まだインストールしていらっしゃらなければ、インストールして試してみて下さい。
> ←これをインストールされたら、念のため、次のアップデータもインストールして下さい:
>
> Windows Embedded Compact 7 ATL Update for Visual Studio 2008 SP1
> http://www.microsoft.com/en-us/download/details.aspx?id=27729
インストールしていなかったのでインストールして試しましたが状況は変わらずでした。
開発環境のパソコンはVS2008が日本語版だったので別のパソコンに英語版を入れて試すと
ビルドエラーがなくなりました。
OSデザイン作成下記内容 ビルド正常。
> >まず、下記README.TXTを参照して
> >\armadillo\WEC7-440-評価版\winec7-a440_460\AM440-7_1.0.4\README.TXT
> …
> >上記に加えCatalog Items View の
> >アプリケーションとサービスの開発
> > .NET Compact Framework 3.5
> >★ .NET Compact Framework 3.5
SDK作成 ビルド正常。
msiファイルより開発環境のパソコンにインストール。
C++で作成した時、SDKの選択が出ます。(図1)
VBで作成した時はSDKの選択が出ません。(図2)
ビルドする前に何か設定が必要なのでしょうか?
またはプロジェクトの作成方法がおかしいのでしょうか?
環境変数を設定する方法の解説ありがとうございました。
今後参考にさせていただきます。
ファイル | ファイルの説明 |
---|---|
c++のとき.png | 図1 C++の時 |
VBの時.png | 図2 VBの時 |
shkoga
サムシングプレシャスの古賀です。
yokotaさん(2015/08/04 - 13:43):
> インストールしていなかったのでインストールして試しましたが状況は変わらずでした。
>
>
>開発環境のパソコンはVS2008が日本語版だったので別のパソコンに英語版を入れて試すと
>ビルドエラーがなくなりました。
了解しました。
>SDK作成 ビルド正常。
>
>msiファイルより開発環境のパソコンにインストール。
>
>
>C++で作成した時、SDKの選択が出ます。(図1)
>
>VBで作成した時はSDKの選択が出ません。(図2)
>ビルドする前に何か設定が必要なのでしょうか?
>またはプロジェクトの作成方法がおかしいのでしょうか?
SDK のプロパティページダイアログの "Development Languages" 画面で、"Managed development support" というチェックボックスを選択状態にしてから、再度 SDK をビルドしてみて下さい。SDK のプロパティページダイアログは、Solution Explorer で SDK のアイコンを右クリックしてポップアップメニューを開き、[Properties] を選択すると開きます。
この設定については、リファレンスの次のページをご覧ください:
SDK Tool Property Pages: Development Languages (Compact 7)
https://msdn.microsoft.com/en-us/library/ee482130(v=winembedded.70).aspx
yokota
サムシングプレシャス 古賀様
回答ありがとうございます。
> SDK のプロパティページダイアログの "Development Languages" 画面で、"Managed development support" というチェックボックスを選択状態にしてから、再度 SDK をビルドしてみて下さい。SDK のプロパティページダイアログは、Solution Explorer で SDK のアイコンを右クリックしてポップアップメニューを開き、[Properties] を選択すると開きます。
上記操作でターゲットプラットフォームの選択時に新しく作成したプラットフォームがでました。(図1)
デバイスとの接続設定等を行い、
DEBUG → START DEBUGGING → DEPLOY を押すと 図2 のような画面が出ます。
Yesを押せばVBで作成した画面がArmadilloに転送され表示されます。
ファイル | ファイルの説明 |
---|---|
ターゲットプラットフォーム選択.png | 図1 ターゲットプラットフォームの選択 |
deployment_error.png | 図2 deployment_error |
yokota
shkoga
2015年7月28日 16時08分
サムシングプレシャスの古賀です。
横田さん(2015/07/28 - 15:38):
>HOW TOではここまでなのですが、
>Visual Studio 2008でアプリケーションを作成する方法(プロジェクトの作り方)がわかりません。
>
>調べたところ下記の方法で開発できるようなのですが・・・
>①Platform Builder上でサブプロジェクトとして開発する方法(C++)
>②通常のデスクトップWindows向けアプリケーションのように開発する方法(C#、VB)
>
>②の方法でVB(Visual Basic)で開発したいと思っています。
>
>質問1
>上記②におけるプロジェクトの作り方
MSDN にある WEC 7 の Developer Guide の中の、次のページが参考になるかと思います:
Create Your Application Using an SDK for an OS Image (Compact 7)
https://msdn.microsoft.com/en-us/library/jj838858(v=winembedded.70).aspx
Howto 記載のデモ版 OS イメージに対応する SDK は、そのインストーラ(.msi)が、 OS イメージと一緒にアーカイブに収録されています。これをインストールして頂いて、上記ページで解説しているように、アプリケーションのプロジェクトを作成する際、プロジェクトウィザードで "Smart Device" プロジェクトのテンプレートを指定して下さい。
上記ページでは、ネイティブコード(C/C++)アプリケーションを作成していますが、同様に、VB の場合も、Smart Device プロジェクトを作成して頂けるはずです。
>質問2
>Vertual PCを使うのかどうかわかりませんが、
>開発環境でのデバッグ方法
Ethernet 経由での、実機のリモートデバッグが可能です。アプリケーションのみデバッグする場合は、Armadillo-440 で WEC 7 を起動した後、デバッグ用のファイル(.exe 及び .dll)を、USB メモリ経由で PC から WEC 7 へコピーしてお使い下さい。具体的な手順は、MSDN の次のページが参考になります:
How to: Connect to Windows CE Device Without ActiveSync
https://msdn.microsoft.com/en-US/library/ms228708(v=vs.90).aspx
また、弊社の Blog エントリも、多少は参考になるかも知れません:
.NET CF アプリケーションとカーネルランドを一緒にデバッグ(1/2)
http://www.stprec.co.jp/ceblog/2012/04/03/
# 「Ethernet 経由でのアプリケーションデバッガ接続」の項をご覧ください。
なお、Platform Builder を使って、ご自分で OS イメージを作成される場合は、デバッグ用のファイルを OS イメージに含めてしまうと、WEC 7 を起動し直すたびにファイルをコピーする必要がなくなり、手間が減ります。
>質問3
>Armadillo-440上でデバッグする方法
>最終的にはSDカード等にboot.binのようなファイルを書き込むと思うのですが
>書き込まずにデバッグする方法はあるのでしょうか?
質問2の回答で述べたリモートデバッグ手順により、実機でのデバッグが可能です。質問2では、アプリケーションのみのデバッグ手順を紹介しましたが、デバッグビルドした OS とカーネルデバッガを使い、OS ごと(カーネルランドおよび、OS イメージに収録している他のアプリケーション)リモートデバッグすることも可能です。
以上、参考になりましたら幸いです。
--
古賀信哉 (株)サムシングプレシャス