Top 最新情報 会社概要 セミナー 製品 開発者向 サポート download 問い合せ English
Windows Linux NETMF H8マイコン FPGA SHSMOD E-Kit WDDDC techmemo


.NET Micro Framework 開発のためのヒント


.NET Micro Framework とは?

Microsoft Reserch (Microsoft社の研究部門) が開発した、小規模組み込み用のOpen Sourceのオペレーティング・システムです。MMU無しの32bit CPUで動作し、最小構成では256KB ROM, 64KB RAM のメモリ構成で動作します。

組み込みアプリケーション開発にはVisual Studio 2010のほか無償のVC# 2010も利用でき、実機でのソースコード・デバッグのほかに、シミュレータ・デバッグ機能も利用可能です。

.NET Framework のアセンブリ IL(Intermediate Language) を直接TinyCLRと呼ぶインタプリタ・モジュールで逐次解釈実行する方式ですが、一般的なARM7/9 CPUでの実装事例では1μsのタイマ割り込みと20msのコンテキスト・スイッチをサポートします。レイヤ別のサポート・モジュールを実装してRTOS等の他のOS上に実装して動作させることも可能です。弊社ではLinux上での実装を公開しています。

ブートローダ、メモリ管理機構、タイマ管理機構やマルチスレッド・スケジューラを備えるともにTCP/IP, FAT FS, USB, I2C, SPI, GPIO, Glaphic, Battery等の組み込みシステムに必要なドライバを豊富に備えるとともにWeb Server, XML Perser, DPWS stack, WPF互換のUI等のミドルウェアのサポートも充実しています。Porting Kitと呼ぶ移植用キットには、配置(デプロイ)ツールや署名機構やシミュレータ、デバッガ、プロファイラのソースコードも含まれていて、単なるOSやドライバのコードだけではなく、移植キット全体のコードが公開されています。

Open SourceのLicenceはApache2.0ポリシーですので、商用利用時にソースコード開示の義務が発生しません。弊社では各種プラットフォームに.NET Micro Frameworkを移植するとともに、解説記事の執筆やセミナを開催することで、Microsoft社と協力して.NET Micro Framework の普及を推進しています。

日本国内では「容易にC#で組み込みシステムのプログラミングやデバッグができること」「Garbage Collection等のC++で記述したVMの簡潔な全ソースが公開されていること」といった理由により、研究機関、大学、高専、工業高校などの教育・研究の場を中心に導入されていますが、今後はいくつかの製品に搭載されて急速に普及・広まることが予想されます。


組み込み技術者フォーラム NET MF情報 http://techmemo.net/mf もご利用下さい。

日本語のオンライン情報

日本語の参考書籍

開発フォーラム

開発コミュニティとダウンロード(4.2アルファ版以降)

関連情報サイト

 


最新情報

4.2 RC2版がCodeplexで公開されています。9月12日にV4.2正式リリース版が公開される予定です。


試しに開発してみるには何が必要か?

.NET Micro Framework

  • .NET Micro Framework が移植済みのボード

    弊社で輸入販売している GHI Electronics 社のFEZ シリーズがお勧めです。TINYCLR.JP のサイトから購入可能です。
    ボードを入手しなくとも、SDKに含まれるシミュレータを使って機能を試すことも可能です。

  • Windows が動作する開発用PC

    Windows XP, Windows Vista, Windows 7 が動作中のPCを利用して開発します。

  • コンパイラとSDK

    コンパイラはVisual Studio 2010か、Visulal C# 2010 Express を使用します。V4.1までは、VC++(C++/CLI)やVB等の他の言語はサポートされませんでしたが、V4.2からVBがサポートされます。

    SDKはここから入手します。GHI Electronics 社のFEZ シリーズを使用する場合にはGHI SDKも必要です。


新しいプラットフォームで動かすには?

移植キット(Porting Kit) を使用して、まだ.NET Micro Framework が動作していない新しいプラットフォーム(組み込みボードや組み込みOS)の上に.NET Micro Framework を移植して稼動させることも可能です。

移植対象のヒント

ターゲット・プラットフォームが以下の機能を全てサポートしている場合には、CPUアーキテクチャに関係なく移植が可能です。

  • 移植ターゲットでROM またはSimulation ROMが512K以上確保できる
  • 移植ターゲットでRAMが512K以上確保できる
  • Windows上でVMを使わずに動作するgcc 4.2相当(4.1も可)のC++ツールチェイン(クロスコンパイラとリンカ、ライブラリアン、ライブラリ)がある
  • シリアル・ポート等のデバッグ・メッセージ表示用機能がある
  • JTAG ICEやgdbスタブ等のターゲット・デバッグ機構がある

上記のうちどれか一つでも満足できない場合には、移植は相当難しい作業となります。

移植に必要なもの

  • ターゲット・プラットフォーム
  • Windows PC (32bit推奨)
  • Microsoft .NET Framework 4.0
    Windows Updateでインストール
  • Visual Studio 2010またはVisual C++ 2010 ExpressとVisual C# 2010 Express
    Express版の場合は別途Platform SDK for .NET Framework 4.0が必要
  • .NET Micro Framework SDK
  • Windows上で動作するツールチェイン
  • デバッガ

クロスコンパイラの入手と開発環境構築

重要な点は、Porting Kitにはクロスコンパイラが付いていません。好きな(親しんでいる?)クロス開発環境を自分で選べるのが利点の場合もあるかも知れませんが、要するに自分で調達せよということです。

推奨のクロスコンパイラ(ここではツールチェインと同義として扱います)

  • RealView SDV

    ARM本家の超高級開発環境(比較的安い期限付き版でも数十万円して1年しか使えない)
    Microsoft の開発チームでは、これをノートPCにインストールして、メイン環境やデモでも使っていた。
    現時点では256KM ROM / 64K RAM 環境への移植はこのコンパイラを使用しないと構築できない。

  • Keil MDK

    SDVよりは安い。評価版有り。RealViewに買収されたので安くならず、競合メリットが無くなって残念。

  • Visual DSP+

    ADI Blackfinアーキテクチャ専用。

  • GCC 4.1以降

    これが使えるのが救い。ほとんどのCPUアーキテクチャに対応しているが、クロスコンパイラのWindows上へのポーティング事例が少ないので、無い場合はCygWin, MinGW, MSYSを駆使して自力で対処する。

GCCの入手先

Windowsでのgcc環境構築は、もはやGNU Tool Chainと格闘や、CygWinやWinGW/MSYSに関する苦悩とは無縁です。

  • CodeSoucery G++

    Microsoftの開発者がgcc版を開発する時に利用していると噂のコンパイラ。うちでも使っています。

  • Raisonance

    CodeSourceryでは対応していない、Thumb 2開発者向け。動作確認をしています。

  • その他

    Rowley, もなみソフトウェア PizzaFactory等, 公開されている使えそうなgccがいくつかあります。動作確認していません。

デバッグ環境

お決まりのJTAGKey互換 JTAG pod + OpenOCD Windows版(yagarto) + Eclipse CDT + Zylin Embedded CDTを使えば、ワンタッチでビルドとロードを行って、C++で記述されたPorting Kitのソースコード上でピタリとブレークします。便利な時代になりました。

参考情報: http://msmicroframework.blogspot.com/2009/02/configuring-eclipse-openocd-gcc-to.html


移植に関するアドバイス

  • 移植対象のハードウェアに関するドキュメント(データシートなど)を熟読する
  • Porting KitのHelp ドキュメントを熟読する
  • クロスコンパイラとリンカを使いこなす
  • メモリマップとメモリ割り当てに気をつける
  • 最初に確認すること:タイマの動作
  • 何かおかしい場合はまず自分、次にハードウェアを疑う

    (Solutuion Wizardのコピー機能を除けば、Porting Kit内のコードやコンパイラは非常に安定しています)


昔のページの内容はこちら。

Copyright(c) 2003-2011 Device Drivers Limited