- - PR -
VS2005によるマネージド/ネイティブコード開発
Windows CEのアプリケーションには、「マネージドコードアプリケーション」と「ネイティブコードアプリケーション」の2種類が存在する。
マネージドコードアプリケーションは.NET Frameworkのサブセットであるモバイル端末向けの「.NET Compact Framework」上で動作するアプリケーションである。実行モジュールには、「IL」と呼ばれる中間コードが格納されている。この中間コードは、.NET Compact Frameworkの「CLR」(Common Language Runtime)によって各ハードウェア固有のネイティブコードに変換された後に実行される。Windows CEでは前述の4種類のCPU(x86、ARM、SHx、MIPS)をサポートしているが、このCLRによってCPU命令の違いを吸収しているため、CPUごとに実行モジュールを用意する必要がない。それに対してネイティブコードアプリケーションは、サポートするプロセッサごとに実行モジュールを用意する必要がある。
またマネージドコードアプリケーションは、.NET Compact Frameworkで提供されるクラス群やCLRのガベージコレクションによるメモリリソース管理が利用できるという利点がある。ただし、利用できるのはNET Compact Frameworkが提供している機能のみであるため、例えばデバイス固有の処理など.NET Compact Frameworkでは提供されていない機能については、Plaform Invoke(P/Invoke)サービスなどを介してネイティブコードを呼び出して利用することになる。
eMbedded Visual C++の統合
これまでのVisual StudioとVS2005との大きな違いとして、ツールの構成が挙げられる。
「Visual Studio .NET 2003」(以下VS.NET2003)においては、Visual C#とVisual Basicが利用可能であった。Visual C#とVisual Basicでは、マネージドコードアプリケーションの開発が可能だ。Visual C++を利用する場合は、VS.NET2003とは別ツールとして用意されていた「eMbedded Visual C++」を使うことになる。ネイティブコードアプリケーションを開発できるのは、eMbedded Visual C++だけだった。
VS2005では、このeMbedded Visual C++がVisual Studioに統合されたことにより、Visual C#、Visual Basic、Visual C++が利用可能となった。こうして、VS2005単体でマネージド/ネイティブコードアプリケーションが開発できるようになった。
なお、マネージドコードアプリケーション開発では、.NET Compact Frameworkのバージョン1.0と2.0をサポートしている。デフォルトでSmartphone 2003、PocketPC 2003をサポートしているほか、いくつかの新しいコントロールが追加されている。
ネイティブコードアプリケーション開発では、既存のeMbedded Visual C++(3.0/4.0)プロジェクトをVS2005のVisual C++プロジェクトに変換するウィザードが追加されている。VS2005のVisual C++ IDEのメニューで[ファイル]−[開く]−[プロジェクト/ソリューション]をクリックし、既存のeMbedded Visual C++プロジェクトを選択するとそれがVS2005ワークスペースに変換される。
| 関連リンク: | |
| eMbedded Visual C++ http://www.microsoft.com/japan/msdn/vstudio/device/eVC/ |
|
| What's New in Managed Device ProjectsのNew Controls and Components in Toolbox http://msdn2.microsoft.com/en-us/library/se5b5fex |
|
Mixed Mode Solutionsの実現
VS.NET2003では、すでにWindows XPなどのアプリケーション開発においてはマネージドコードアプリケーションとネイティブコードアプリケーションのプロジェクトを1つのソリューション内で管理できた。それに対してWindows CEのアプリケーション開発では、前述したようにeMbedded Visual C++とVisual Studioが統合されていなかったため、1つのソリューション内でマネージドコードアプリケーションとネイティブコードアプリケーションのプロジェクトを管理することはできなかった。
eMbedded Visual C++の統合でこの点も改善され、1つのソリューション内で両コードの管理(Mixed Mode Solutions)が可能となった。
![]() |
| 画面2 マネージドコード/ネイティブコードの統合管理(画像をクリックすると拡大します) |
VS2005の組み込み開発機能
エミュレータの使用と操作
Visual Studioには、物理的なターゲットデバイスを用いず、開発マシン(PC)上のエミュレータでWindows CE用のアプリケーションを実行する機能がある。VS2005では、インストール時点でPocket PC 2003 SEとSmartphone 2003エミュレータが利用可能となっている。このほかにも、Platform BuilderでエクスポートしたSDKに格納されているエミュレータも利用可能である。
また、Visual Studio IDEの[ツール]−[デバイス エミュレータ マネージャ]メニューで、「デバイス エミュレータ マネージャ」ダイアログボックスが表示される。このダイアログボックスでは、利用できるすべてのエミュレータの状態参照、エミュレータの起動、接続、リセットなどの操作が可能だ。
![]() |
| 画面3 [デバイス エミュレータ マネージャ]ダイアログボックス |
リモートデバッグとリモートツール
Visual Studioでは、ターゲットデバイスをPCに接続し、PC上からリモートでデバッグを行うことができる。この、PCとターゲットデバイスの接続について補足する。
VS.NET2003までは、イーサネットとシリアルポートが主な接続方法だった。これに対し、VS2005からはUSB、Wireless、IrDA、Bluetoothが利用できるようになった。接続方法はActiveSync、KITL、Platform Managerマニュアルサーバを利用する方法が考えられる。
eMbedded Visual C++やPlatform Builderには、Windows CEデバイスに接続して、リモートでデバイスの状態を監視するツールが同梱されている。Visual Studioにも、VS2005から以下のツールが追加された。
|
これらのツールを利用して、PCからデバイス上のアプリケーションの動作確認やデバッグ作業が行える。
◆
前編では、VS2005の新機能や組み込み開発用の機能を紹介した。後編では、マネージドコードおよびネイティブコードアプリケーションそれぞれの開発の流れを多くのスクリーンショットとともに解説する。
関連記事 設計/開発技法
- 特集:Javaは組み込みに“不向き”は本当か?
- 連載:BREWアプリケーション開発入門(全10回)
- 連載:イチから作って丸ごと学ぶ! H8マイコン道(全12回)
- 連載:−ザ・組み込み−ソフトウェアのハードウェア化(連載中)
- 連載:組み込みLinux開発入門(全3回)
- 連載:T-Engineプログラミング入門(全4回)
- 連載:Symbian OS開発の勘所(全10回)
- 連載:Symbian OSアプリ開発の手引き(連載中)
- 連載:解説! ロボット開発環境Robotics Studio(全4回)
- 連載:Robotics Studio活用術 はじめて作るサービス(全5回)
- 連載:生産性向上への道 Eclipseで行うC/C++開発(全4回)
組み込み開発フォーラム 新着記事
- フルスクラッチの“Hello World”を動かしてみよう(2011/3/31)
- FlexRayプロトコルの概要(その2)(2011/3/29)
- JASA、東北地域に拠点を置く会員企業を支援(2011/3/25)
- NEC、震災の影響を受けた4拠点の生産再開を発表(2011/3/23)
- 内部ブロック図の基礎と共通要素(2011/3/22)
- インテル、被災地におけるITインフラの復旧を支援(2011/3/22)
- Facts on AUTOSAR/AUTOSAR導入の現実(2011/3/18)
- 計測器・震災被害ホットラインを開設、テクトロニクス(2011/3/18)
- ZMP、地震の揺れを多角的に計測するアプリ無償配布(2011/3/16)
- メンター、3Dテレビ・マルチメディア検証プラットフォーム(2011/3/16)
- 【番外編】タチの良い計測値、悪い計測値とは?(2011/3/15)
- tarファイルシステムをAndroidに組み込む!!(2011/3/10)












