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

2014 0228 OSC-Spring Tokyo NETMF

Dec 05, 2014

Download

Technology

Atomu Hidaka

オープンソースになったマイコン開発環境 .NET Micro Frameworkの紹介。
使って簡単!楽しいMicrosoftの小型組み込みOS
ドットNETまいくろバンザイ倶楽部
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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まいくろバンザイ倶楽部