20
オープンソースカンファレンス 2014 Tokyo/Spring 2014/2/28 ドットNETまいくろバンザイ倶楽部 1 ドットNETまいくろバンザイ倶楽部 日高亜友 - 使って簡単!楽しい Microsoft の小型組み込みOS - [email protected] オープンソースになったマイコン開発環境 .NET Micro Frameworkの紹介。 ドットNET まいくろ バンザイ

2014 0228 OSC-Spring Tokyo NETMF

Embed Size (px)

DESCRIPTION

オープンソースになったマイコン開発環境 .NET Micro Frameworkの紹介。 使って簡単!楽しいMicrosoftの小型組み込みOS ドットNETまいくろバンザイ倶楽部

Citation preview

Page 1: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2014 Tokyo/Spring

2014/2/28 ドットNETまいくろバンザイ倶楽部 1

ドットNETまいくろバンザイ倶楽部

日高亜友

-使って簡単!楽しいMicrosoft の小型組み込みOS -

[email protected]

オープンソースになったマイコン開発環境.NET Micro Frameworkの紹介。

ドットNETまいくろバンザイ

Page 2: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 2

.NET Micro Framework とは?

Microsoft Research開発の組み込みOS

Visual C# / Visual Basicで開発した IL

.NET アセンブリを中間コードインタプリタで実行

豊富なドライバとライブラリを標準装備

オープンソース・ライセンスで公開(Apache V2)

30種以上のプラットフォームに移植されて動作

.NET Micro Framework (NETMF) 移植済みSOC

業務アプリケーション・システム応用事例

アプリケーション開発が”超”簡単な組み込みOS

ドットNETまいくろバンザイ倶楽部

Page 3: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ .NET Micro Framework の歴史

2001年 V 1.0

SPOT Watch / MSN Direct Service

(Microsoft リサーチ)

2006年 V2.0Windows SideShow Device

2008 年 V3.0 , 3.5 for Network

2010年 V4.0 for Open Source

2010年 V4.1 for Big Endian / lwIP

2011年 V4.2 for Visual Basic

2012年 V4.3 for Visual Studio 20122014/2/28 3ドットNETまいくろバンザイ倶楽部

Page 4: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 4

NETMFの本質

本来は、Windows CE 未満のプラットフォーム用

組込みシステム向け製品となるはずだったOS

(かつては)移植キット販売済

(かつては)ライセンス販売済

製品レベルの品質

2010年にオープンソース化

Apache V2 ライセンス→無償で商用利用可能

競合OSの台頭

⇒製品相当の機能・性能・品質を無料で公開

ドットNETまいくろバンザイ倶楽部

Page 5: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ アーキテクチャ

全体構成

2 種類の実装方法- Native Platform

- “OS on OS” solution

2014/2/28 5ドットNETまいくろバンザイ倶楽部

アプリケーション開発ライブラリ開発

プラットフォーム移植

CLR: Common Language Runtime

HAL: Hardware Abstraction Layer

PAL: Platform Abstraction Layer

Page 6: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ OSとしての提供機能

IL(.NETのアセンブリ)の実行環境 = TinyCLR

タイマ, 割り込みハンドラ, マルチスレッド,

スケジューラ

ブートローダ, 各種デバイスドライバ, リソースマネージャ

組み込み環境対応

MMU 不要

最小 64KB RAM / 256KB ROM (特別な環境)

標準サポート ARM7/9/Cortex-M3, Blackfin, SH-2/2A

サポート機能

ブートローダ, アプリケーションローダ, デバッガIF 2014/2/28 6ドットNETまいくろバンザイ倶楽部

Page 7: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ 楽しみ方いろいろ

自作ボードや未サポートボードに移植

CQ出版等の移植事例(参考資料)

周辺ハードウェアを自作して動作

容易に接続可能→.NET Gadgeteer

ライブラリやシステムを開発・改造

Emulatorの開発、独自モジュールの開発

連係システムやアプリケーションを開発

他のシステムとの接続

PC, Smart Phone, Cloud連係

2014/2/28 7ドットNETまいくろバンザイ倶楽部

Page 8: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ 最新の動向

Agent Watch - Secret Labs

http://agentwatches.com/

Fun Engineering - GHI Electronics

https://www.ghielectronics.com/catalog/category/6

Bambino - Micromint http://www.micromint.com/component/content/article/53-

products/196-bambino200.html

2014/2/28 8ドットNETまいくろバンザイ倶楽部

Page 9: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ 最新の動向(その2)

Gadgeteer Guy - Systech

http://gadgeteerguy.com/

STM32 - Mountaineer Group http://www.mountaineer.org/netmf-for-stm32/

Lego mindstorms EV3 - ??? http://www.lego.com/ja-jp/mindstorms/products/ev3/31313-mindstorms-ev3/

2014/2/28 ドットNETまいくろバンザイ倶楽部 9

Page 10: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 10

アプリケーション開発手順

事前調査・基本設計

Interface 仕様の確認 (H/W, S/W, Network, …)

コーディング

Full .NET 環境用コードの流用

ソースコード・デバッグ

エミュレータ, オンライン・デバッガ

Full .NET 環境でのデバッグ (ソース流用化)

デプロイ

Flash ROM焼き, 配布用署名付きコード生成

ドットNETまいくろバンザイ倶楽部

Page 11: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 11

SDK vs. PK (Porting Kit)

SDK: 組み込みアプリケーション開発 アプリケーション開発に必須

Visual Studio / VC# Express に組み込んで使用

Simulator, Debugger, Deployment Tools を含む

PK: 動作プラットフォームの構築(移植) .NET Micro Framework の移植に必須

ほかにクロスコンパイラ(+デバッガ)が必須

ツール類を含めた全ソースコードが提供

ほとんどを C++ で記述 (一部アセンブラ, C, C#)ドットNETまいくろバンザイ倶楽部

バージョンを合わせる必要がある

Page 12: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 12

ドライバとサービス

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まいくろバンザイ倶楽部

Page 13: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 13

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

赤字がデモ・展示環境

ドットNETまいくろバンザイ倶楽部

Page 14: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 14

その他の動作プラットフォーム市販品 GHI Electronics -- FEZ Spider, FEZ Hydra, FEZ Cerberus, FEZ Game-O

Secret Labs LLC – netduino, netduino2, netduino plus2, netduino go

Mountaineer -- Mountaineer Ethernet, Mountaineer USB

Sytechdesigns NANO

Netmfdevices

STM Octopus -- ingenuitymicro

Threadneedle – HughB

CQ出版インターフェース誌付録 FM3, RX62, SH2A, ARM7(LPC2388)

その他のOpenSourceプラットフォーム RX62 -- SourceForge

FM3 -- CodePlex

LPC23xx and LPC24xx -- CodePlex

Micro2440SDK (S3C2440) -- CodePlex

FEZ Hacker (AT91SAM7X-EK) -- CodePlex

Eddy (SAM9260, Linux) -- CodePlex

STM32F4 Family – CodePlex

赤字がデモ・展示環境

ドットNETまいくろバンザイ倶楽部

Page 15: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ .NET Gadgeteer とは?

2014/2/28 ドットNETまいくろバンザイ倶楽部 15

Microsoftリサーチが開発している.NET Micro Framework ベース組み込みシステム統合開発環境とそれを構成するモジュール製品群

MMU無しマイコン上でVisual Studioで開発した.NETアセンブリ(中間コード)をインタプリタ実行

GUI操作で自動的に

初期化コードとクラスライブラリを追加

.NET MF

OS / Driver

Interpreter

App. / Lib.

Gadgeteer

Page 16: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ .NET Gadgeteer とは?

2014/2/28 ドットNETまいくろバンザイ倶楽部 16

具体的には次のもの ハードウェア

専用メインボード、専用モジュール群、開発環境としてのWindows PC

ソフトウェア ROM化されたOS、組み込み用各種ドライバとライブラリ、

Visual Studio用Plug In(ライブラリとGUIツール、シミュレータ)

新規モジュール開発やカスタマイズ可能 オープンソース

Page 17: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28

.NET Gadgeteer とは?

C#/VB言語レベルでライブラリと豊富なミドルウェアを提供 プロトコル、グラフィック

ファイルシステム

サービス、マルチスレッド

10種以上のCPUボードと100種以上のアクチュエータ,センサー, ネットワークアダプタ,コネクティビティ,ディスプレイ等のモジュールを提供

ドットNETまいくろバンザイ倶楽部 17

Page 18: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 18

デモ-1

FEZ Spiderで Cloud (Windows Azure) 接続

FEZ SpiderでWindows 8と連係

ドットNETまいくろバンザイ倶楽部

Page 19: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 19

デモ-2

異なったプラットフォーム上で共通の中間コードバイナリを実行 Renesas SH2A, Atmel ARM9, Fujitsu Coretex-M3 上で同じ画像描画アプリケーションを動作

FEZ Game-Oで簡単にポータブル・ゲーム開発

ドットNETまいくろバンザイ倶楽部

Page 20: 2014 0228 OSC-Spring Tokyo NETMF

オープンソースカンファレンス 2013 Tokyo/Fall

ドットNETまいくろバンザイ

2014/2/28 20

参考情報

インターフェース誌 2009年12月号特集●第4章 .NET Micro Frameworkによるネットワーク端末の製作

インターフェース誌 2011年3月号○特集組み込みで使うVisual C#と.NET Micro Framework

インターフェース誌 2011年4月号●技術解説 Linux上への.NET Micro Framework移植の勘所(前編)技術解説 SH-2Aマイコン基板に.NET Micro Frameworkを移植する

インターフェース誌 2011年6月号●技術解説 Linux上への.NET Micro Framework移植の勘所(後編)

インターフェース誌 2011年11月号技術解説 SH-2A向けネットワーク対応.NET Micro Frameworkの活用

インターフェース誌 2012年8月号○特集定番Visual StudioとC#でマイコン開発にトライ!

インターフェース誌 2012年9月号技術解説定番Visual StudioでルネサスRX マイコン開発

ドットNETまいくろバンザイ倶楽部