Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

2015 0227 OSC-Spring Tokyo NETMF

1,419 views

Published on

オープンソースになったマイコン開発環境 .NET Micro Frameworkの新プラットフォームへの移植手順。
IoT時代の組み込みOSを国産マイコンボード GR-Peachに移植!
ドットNETまいくろバンザイ倶楽部

Published in: Technology
  • Be the first to comment

2015 0227 OSC-Spring Tokyo NETMF

  1. 1. オープンソースカンファレンス 2015 Tokyo/Spring 2015/2/27 ドットNETまいくろバンザイ倶楽部 1 ドットNETまいくろ バンザイ倶楽部 日高亜友 - RZ マイコン搭載 GR-Peach を始めとする新しい流れ - info@devdrv.co.jp オープンソースになったマイコン開発環境 .NET Micro Frameworkの紹介。 ドットNET まいくろ バンザイ
  2. 2. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 2 セッション内容  .NET Micro Frameworkとは?  新プラットフォームへの移植  組み込みアプリケーション開発とIoT開発  GR-Peachへの移植 参加者募集! ドットNETまいくろバンザイ倶楽部
  3. 3. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 3ドットNETまいくろバンザイ倶楽部 .NET Micro Frameworkとは?
  4. 4. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 4 .NET Micro Framework とは?  元々はMicrosoft Research 開発の組み込みOS  Visual C# / Visual Basicで開発した IL .NET アセンブリ を中間コードインタプリタで実行  豊富なドライバとライブラリを標準装備  オープンソース・ライセンスで公開(Apache V2)  30種以上のプラットフォームに移植されて動作  .NET Micro Framework (NETMF) 移植済みSOC  業務アプリケーション・システム応用事例 ドットNETまいくろバンザイ倶楽部
  5. 5. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ .NET Micro Framework の歴史  2001年 V 1.0 SPOT Watch / MSN Direct Service (Microsoft リサーチ)  2006年 V2.0 Windows SideShow Device  2008 年 V3.0 , 3.5 for Network  2010年 V4.0 for Open Source  2011年 V4.2 for Visual Basic  2012年 V4.3 for Visual Studio 2012  2015年 V4.3-QFE2 for Visual Studio 2013/2015 2015/2/27 5ドットNETまいくろバンザイ倶楽部
  6. 6. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 6 NETMFの本質  本来は、Windows CE 未満のプラットフォーム用 組込みシステム向け製品となるはずだった OS  移植キット販売、製品ライセンス販売予定  2010年にオープンソース化  Apache V2 ライセンス→無償で商用利用可能  競合OSの台頭 ⇒ 製品相当の機能・性能・品質 を無料で公開  2015年 正式サポート製品 GR-Peach 国内販売  国産製品化第1号 ドットNETまいくろバンザイ倶楽部
  7. 7. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ アーキテクチャ  全体構成 2 種類の実装方法 - Native Platform - “OS on OS” solution 2015/2/27 7ドットNETまいくろバンザイ倶楽部 アプリケーション開発 ライブラリ開発 プラットフォーム移植 CLR: Common Language Runtime HAL: Hardware Abstraction Layer PAL: Platform Abstraction Layer
  8. 8. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ OSとしての提供機能  IL(.NETのアセンブリ)の実行環境 = TinyCLR  タイマ, 割り込みハンドラ, マルチスレッド, スケジューラ  ブートローダ, 各種デバイスドライバ, リソースマネージャ  組み込み環境対応  MMU 不要  最小 64KB RAM / 256KB ROM (特別な環境)  標準サポート ARM7/9/Cortex-M3, Blackfin, SH-2/2A  サポート機能  ブートローダ, アプリケーションローダ, デバッガIF 2015/2/27 8ドットNETまいくろバンザイ倶楽部 ARM製コンパイラ 利用時のみ!
  9. 9. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 9 ドライバとサービス Cache Ethernet, WiFi GPIO I2C INTC LCD / Display Piezo / Speeker PMC SDRAM SDCARD / MMC SPI Thermistor TIME (RTC) TIMER USART USB Client Backlight (GPIO,SPI) BatteryCharger / Measurement BlockStorage (Flash, SD) Buttons COM DPWS Gesture Font, Graphics HTTP Ink Interop FileSystem (FAT) Security, Crypto TCP/IP, Socket, RPC, SSL Touch Panel (Multi Touch) XML デバイスドライバデバイスコントローラ ドットNETまいくろバンザイ倶楽部
  10. 10. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ プラットフォームとアプリケーション  自作ボードや未サポートボードに移植  CQ出版等の移植事例(参考資料)  周辺ハードウェアを自作して動作  容易に接続可能→.NET Gadgeteer  ライブラリやシステムを開発・改造  Emulatorの開発、独自モジュールの開発  連係システムやアプリケーションを開発  他のシステムとの接続  PC, Smart Phone, Cloud連係 2015/2/27 10ドットNETまいくろバンザイ倶楽部
  11. 11. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 11 SDK vs. PK (Porting Kit)  SDK: 組み込みアプリケーション開発  アプリケーション開発に必須  Visual Studio / VC# Express に組み込んで使用  Simulator, Debugger, Deployment Tools を含む  PK: 動作プラットフォームの構築(移植)  .NET Micro Framework の移植 に必須  ほかに クロスコンパイラ(+デバッガ)が必須  ツール類を含めた全ソースコードが提供  ほとんどを C++ で記述 (一部アセンブラ, C, C#) ドットNETまいくろバンザイ倶楽部 バージョンを 合わせる必要がある
  12. 12. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 12ドットNETまいくろバンザイ倶楽部 新プラットフォームへの移植 とIoT開発
  13. 13. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 移植方法の選択  Native実装  TinyCLR直接実装 VS. TinyBooter実装  TinyCLR / TinyBooter のメンテナンス手順が必須  他のブートローダ利用  U-Boot, T-Monitor (T-Engine)等  Network ブート  OS on OS  他のOSのアプリケーションとしてNETMFを実装  ソースコードが公開されているので 実際にはどの様にでも作ることが可能 2015/2/27 13ドットNETまいくろバンザイ倶楽部 TinyBooter = NETMF専用ブートローダ Monoへの エクスポート
  14. 14. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 14 サポート・プラットフォーム  PK が用意しているサポート・テンプレート(標準サポート環境)  BF537 -- ADI Blackfin  EA_LPC2478 -- NXP LPC2478 (Embedded Artists LPC2478 4MB / 512KB)  iMXS -- MC9328MXS (32MB RAM / 8MB Flash ROM)  MCBSTM32E – STM32F103 Cortex-M3 (KEIL MCBSTM32E 8MB / 1MB)  MOTE2 -- Marvell PXA271 (Crossbow imote2)  PCM023 -- NXP LPC22xx ARM7  SAM7S_EK -- Atmel AT91SAM7S256 (64KB RAM / 256KB Flash ROM)  SAM7X_EK -- Atmel AT91SAM7X512 (128KB RAM / 512KB Flash ROM)  SAM9RL64 -- Atmel AT91SAM9RL64EK (64MB RAM / 256MB Flash ROM)  SAM9261_EK -- Atmel AT91SAM9261EK (64MB RAM / 256MB Flash ROM)  SH7216_RSK -- SH-2A 16MB SRAM / 1MB Flash ROM  SH7264_M3A_HS64 -- SH-2A 64MB RAM / 516MB Flash ROM  SH7264_RSK -- SH-2A 64MB RAM / 64MB Flash ROM  SH7619_EVB -- SH2 8MB RAM / 4MB Flash ROM  STM32Stamp -- STM32F103 Cortex-M3 (ET-STM32 Stamp 512KB RAM / 64KB)  Windows2 -- Windows Emulator  そのほか公開されている事例  STM32F4 -- STM32F4-Discovery, Netduino Plus, FEZ Cerberus Oberon microsystems  FM3/FM4 -- SK-FM4-U120-9B560, MB9BF506, CQ_FRK_FM3 ksekimoto  RX62 ドットNETまいくろバンザイ倶楽部
  15. 15. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 15 移植前のチェック  ターゲット・プラットフォーム  RAM/RAM容量(ROM不足は RAMで代用可能)  CPU アーキテクチャ  gcc利用時の最低メモリ目安  RAM 256KB / ROM 512KB (Thumb / Thumb2 命令)  コンパイラとデバッガ  Windows上で動作するクロスコンパイラ  Windows上で動作する JTAG-ICE デバッガ  Native 実装 vs. “OS on OS” 実装  ターゲット・プラットフォームの適正 ドットNETまいくろバンザイ倶楽部
  16. 16. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 16 移植に必要な知識  組み込みシステム全般  割り込み処理, 割り込みVector, Cache, MMU, PLL  ブートローダ  移植対象のCPU, ターゲット・ボード  データシート, 回路図, メモリマップ, クロック  ツール  Toolchain(コンパイラ, アセンブラ, リンカ, ライブラリアン) C, C++, CPUのアセンブラ命令, コマンドプロンプト, VB Script  デバッガ, JTAG ICE, Eclipse, OpenOCD+GDB  OSアーキテクチャとリソース管理  メモリ, タイマ, 割り込み, イベント  .NET Framework と CLR ドットNETまいくろバンザイ倶楽部
  17. 17. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 17 ソフトウェア環境とツール  Visual Studio 2012 (VC++ 2012 exp, VC# 2012 exp も可)  Windows SDK 8.0 (MSBuild)  .NET Micro Framework 4.3 SDK (QFE1)  .NET Micro Framework 4.3 Porting Kit (QFE1)  クロスコンパイラ, デバッガ  推奨は ARM RVDS, KEIL MDK  gccは CodeSourcery arm-2014.05-28 (GCC 4.8.3まで) 一部ソースコードが非対応なので自力で問題解決  クロス開発統合環境  Eclipse (自分で作る場合も…)  ソースコード管理  7zip, WinMerge, VSS, svn, … ドットNETまいくろバンザイ倶楽部
  18. 18. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 18 ハードウェア環境とツール  JTAG ICE, またはOpenOCD ICE  対応CPUやボード構成をよく確認する  Flash ROM書き込みツール(必要に応じて)  ブートローダ開発環境(必要に応じて)  評価ボード(ターゲットが利用できない場合)  測定器、信号観測ツール ドットNETまいくろバンザイ倶楽部
  19. 19. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 19 移植の主要作業  開発環境構築と基本設計  環境変数設定&クロス開発用ビルドスクリプト作成  メモリ割当て設計&Scatter ファイル設定  Solution の作成  ビルド&デバッグ  NativeSample を動作させる  ブートローダ, 初期化処理 (Clock, Cache, MMU, PLL)  ドライバ, PAL IF (Flash ROMドライバ開発必須, UART)  TinyCLR の動作  TinyBooter, アプリケーション・ロードとデバッグIF ドットNETまいくろバンザイ倶楽部
  20. 20. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 20 InterOpの実装  NETMF標準APIに無いOS機能を アプリケーションから呼び出す  使用方法  標準APIに無いドライバの実装  例:USB Host ドライバ, Flash ROM管理,  クリティカルな処理をCまたはアセンブラで記述して アプリケーションから呼び出す  実装方法  C#でAPIを記述、コードをC/C++/アセンブラで記述  パラメータ、リターン値、非同期処理、イベントが利用可能 ドットNETまいくろバンザイ倶楽部 OS 移植の醍醐味
  21. 21. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 ドットNETまいくろバンザイ倶楽部 21 ビルド&デバッグ  NativeSample  Native Code での”Hello world” 表示出力  ビルド環境の検証(自由にカスタマイズ可能)  ドライバ類の初期化&動作の検証  TinyCLR  .NET Micro Frameworkの移植対象・本体  実行にはIL (コンパイル済アセンブリ)が必須  ProductSampleディレクトリ(HelloWorld, Network など)  TinyBooter  NETMF 純正ブートローダ(MFDepoy IF) • メモリ管理 • 割り込み • タイマー • 232C/USB ドライバ
  22. 22. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 22 考察:Native 環境への移植  利点  全ソースコードが用意されている  ブートローダ, CPU初期化, リソース管理  動作している実機サンプルが入手し易い  割り込み / イベント処理が実装し易い  欠点  未対応アーキテクチャには移植し難い  クロスコンパイル, デバッグ環境を手当てする必要 ドットNETまいくろバンザイ倶楽部
  23. 23. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 23 考察: OS on OS 環境への移植  利点  OSが用意している開発環境を流用可能  JTAG-ICEの代わりにデバッガで代用可能  1回移植すれば、同一OSへの移植が容易  欠点  参考にするソースコードが用意されていない  動作している実機サンプルが入手し難い  OS依存APIを変換する作業(PAL層開発)が必須 (Timer, Event, Select, Socket, …)  ドライバの移植数、作業工数はNativeよりも多い ドットNETまいくろバンザイ倶楽部 参考: .NET Micro Framework for Linux
  24. 24. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 24ドットNETまいくろバンザイ倶楽部 組み込みアプリケーション開発
  25. 25. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 25 アプリケーション開発手順  事前調査・基本設計  Interface 仕様の確認 (H/W, S/W, Network, …)  コーディング  Full .NET 環境用コードの流用  ソースコード・デバッグ  エミュレータ, オンライン・デバッガ  Full .NET 環境でのデバッグ (ソース流用化)  デプロイ  Flash ROM焼き, 配布用署名付きコード生成 ドットNETまいくろバンザイ倶楽部 .NET Gadgeteeer で簡単に!
  26. 26. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 26 デバッガ インターフェース  デバッガとの接続手段:3種類から選択  独自ハードウエア開発の注意点  OS更新用のデバッガ(ブート)・スイッチの必須  通常はGPIOタクトSW(ボタン), DIP-SW等を使用 ドットNETまいくろバンザイ倶楽部 ドライバ ドライバ ドライバ Serial (RS232C) USB LAN (TCP/IP) Host PC Target
  27. 27. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ .NET Gadgeteer とは? 2015/2/27 ドットNETまいくろバンザイ倶楽部 27  .NET Micro Framework ベース組み込みシステム統合 開発環境とそれを構成するモジュール製品群  MMU無しマイコン上でVisual Studioで開発した .NETアセンブリ(中間コード)をインタプリタ実行  GUI操作で自動的に 初期化コードとクラスラ イブラリを追加 .NET MF OS / Driver Interpreter App. / Lib. Gadgeteer
  28. 28. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ .NET Gadgeteer とは? 2015/2/27 ドットNETまいくろバンザイ倶楽部 28  具体的には次のもの  ハードウェア  専用メインボード、専用モジュール群、 開発環境としての Windows PC  ソフトウェア  ROM化されたOS、組み込み用各種ドライバとライブラリ、 Visual Studio用Plug In(ライブラリとGUIツール、シミュレータ)  新規モジュール開発やカスタマイズ可能  オープンソース
  29. 29. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 .NET Gadgeteer とは?  C#/VB言語レベルでライブラリと豊富なミドルウェアを提供  プロトコル、グラフィック  ファイルシステム  サービス、マルチスレッド  10種以上のCPUボードと 100種以上の アクチュエータ, センサー, ネットワークアダプタ, コネクティビティ, ディスプレイ等の モジュール を提供 ドットNETまいくろバンザイ倶楽部 29
  30. 30. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ IoT入門キット事例  IoT 入門キット  ガジェッター IoT 入門キット  EnOcean IoT 入門キット 2015/2/27 30ドットNETまいくろバンザイ倶楽部
  31. 31. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ GR-Peach  特長  RZ/A1H搭載 ARM Cortex-A9 Core  400MHz, 10MB RAM, 8MB FLASH  Arduino互換ピンアサイン &ピンソケット豊富な各種シールドと接続可能  mbed 対応 2015/2/27 31ドットNETまいくろバンザイ倶楽部
  32. 32. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ GR-Peach と IoT Kit  2014年8月  GR-Peach プレスリリース  2014年11月  第1回プロデューサミーティング 試用版配布  NETMF for mbed 活動開始  2015年3月15日  IoYTコミュニティー(仮称)キックオフ!  2015年3月21日  第3回プロデューサミーティング 最終発表会 2015/2/27 32ドットNETまいくろバンザイ倶楽部
  33. 33. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ NETMF for mbed  mbed対応の GR-Peach上で .NET Micro Framework 及び .NET Gadgeteerを 移植して動作させよう! 2015/2/27 33ドットNETまいくろバンザイ倶楽部
  34. 34. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ NETMF for mbed 活動内容  関本健太郎氏(インターフェース誌で移植記事執筆)が 中心となって移植・評価中  情報交換  Facebook : NETMF on mbed 準備会  成果公開  Codeplex : NETMF for MBED https://netmf4mbed.codeplex.com/  GitHub : http://ms-iotkithol-jp.github.io/  mbed : http://developer.mbed.org/teams/NETMF-on-mbed/ 2015/2/27 34ドットNETまいくろバンザイ倶楽部
  35. 35. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ NETMF for mbed 募集  賛同者、協力者、開発者 募集中!  Visual StudioとGR-Peach で組み込み開発  GR-Peach への移植の作業分担  IoT 学習用教材の開発、活用  国産 MCU RZマイコンと .NET Micro Frameworkの普及促進と宣伝 2015/2/27 35ドットNETまいくろバンザイ倶楽部
  36. 36. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ IoYT コミュニティー (仮称)  Internet of Your Things 活動  http://kokucheese.com/event/index/266921/  IoTあるじゃん(ALGYAN)  facebook: IoTあるじゃん(ALGYAN)本会  https://www.facebook.com/groups/ioytjp/ 2015/2/27 36ドットNETまいくろバンザイ倶楽部
  37. 37. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 37 まとめ  .NET Micro Frameworkとは?  新プラットフォームへの移植  組み込みアプリケーション開発とIoT開発  GR-Peachへの移植 参加者募集! ドットNETまいくろバンザイ倶楽部
  38. 38. オープンソースカンファレンス 2015 Tokyo/Spring ドットNET まいくろ バンザイ 2015/2/27 38 参考URL  .NET Micro Framework (NETMF)  http://www.netmf.com/  http://netmf.codeplex.com/  http://en.wikipedia.org/wiki/.NET_Micro_Framework  .NET Gadgeteer  http://www.netmf.com/gadgeteer/  https://gadgeteer.codeplex.com/  http://ja.wikipedia.org/wiki/.NET_Gadgeteer ドットNETまいくろバンザイ倶楽部

×