SlideShare a Scribd company logo
オープンソースカンファレンス 2013 Nagoya
2013/6/22 ドットNETまいくろバンザイ倶楽部 1
ドットNETまいくろ バンザイ倶楽部
http://www.facebook.com/groups/netmf
日高亜友
- 簡単に使える Microsoft の小型組み込みOS -
@AtomuHidaka
オープンソースになったマイコン開発環境
.NET Micro Frameworkの紹介。
ドットNET
まいくろ
バンザイ
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 2
セッション内容
 はじめに
 基本事項
 新プラットフォームへの移植
 アプリケーション開発
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 3
はじめに:参考情報
 インターフェース誌 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まいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 4
.NET Micro Framework とは?
 M$ 研究所 開発の組み込みOS
 Visual C# / Visual Basicで開発した IL
.NET アセンブリ を中間コードインタプリタで実行
 豊富なドライバとライブラリを標準装備
 オープンソース・ライセンスで公開(Apache V2)
 20種以上のプラットフォームに移植されて動作
 .NET Micro Framework (NETMF) 移植済みSOC
 業務アプリケーション・システム応用事例
 アプリケーション開発が”超”簡単な組み込みOS
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 5
セッション内容
 はじめに
 基本事項
 新プラットフォームへの移植
 アプリケーション開発
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドット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
 2010年 V4.1 for Big Endian / lwIP
 2011年 V4.2 for Visual Basic
 2012年 V4.3 for Visual Studio 2012
2013/6/22 6ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 7
私とNETMFのかかわり
 2008年にソースコード (V3.5) 購入&評価
 2009年以降、毎年関連記事執筆
 NETMF関連
 2010年より搭載ボードの輸入を開始
 NETMF 関連受託開発
 ボード開発、移植作業、アプリケーション開発
 各種普及活動
 イベント、セミナー、勉強会、雑誌記事等
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 8
NETMFの本質
 本来は、Windows CE 未満のプラットフォーム用
組込みシステム向け製品となるはずだった OS
 移植キット販売
 ライセンス体系
 製品品質
 2010年にオープンソース化された
 競合OSの台頭
⇒ 製品相当の機能・性能・品質 を無料で公開
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ アーキテクチャ
 全体構成
2 種類の実装方法
- Native Platform
- “OS on OS” solution
2013/6/22 9ドットNETまいくろバンザイ倶楽部
アプリケーション開発
ライブラリ開発
プラットフォーム移植
CLR: Common Language Runtime
HAL: Hardware Abstraction Layer
PAL: Platform Abstraction Layer
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ OSとしての提供機能
 IL(.NETのアセンブリ)の実行環境 = TinyCLR
 タイマ, 割り込みハンドラ, マルチスレッド,
スケジューラ
 ブートローダ, 各種デバイスドライバ, リソースマネージャ
 組み込み環境対応
 MMU 不要
 最小 64KB RAM / 256KB ROM (特別な環境)
 標準サポート ARM7/9/Cortex-M3, Blackfin, SH-2/2A
 サポート機能
 ブートローダ, アプリケーションローダ, デバッガIF
2013/6/22 10ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ 移植方法の選択
 Native実装
 TinyCLR直接実装 VS. TinyBooter実装
 TinyCLR / TinyBooter のメンテナンス手順が必須
 他のブートローダ利用
 U-Boot, T-Monitor (T-Engine)等
 Network ブート
 OS on OS
 他のOSのアプリケーションとしてNETMFを実装
 ソースコードが公開されているので
実際は何とでも作ることが可能
2013/6/22 11ドットNETまいくろバンザイ倶楽部
TinyBooter = NETMF専用ブートローダ
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 12
SDK vs. PK (Porting Kit)
 SDK: 組み込みアプリケーション開発
 アプリケーション開発に必須
 Visual Studio / VC# Express に組み込んで使用
 Simulator, Debugger, Deployment Tools を含む
 PK: 動作プラットフォームの構築(移植)
 .NET Micro Framework の移植 に必須
 ほかに クロスコンパイラ(+デバッガ)が必須
 ツール類を含めた全ソースコードが提供
 ほとんどを C++ で記述 (一部アセンブラ, C, C#)
ドットNETまいくろバンザイ倶楽部
バージョンを
合わせる必要がある
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 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まいくろバンザイ倶楽部
展示デモ: SAM9261_EK
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 14
ドライバとサービス
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まいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 15
セッション内容
 はじめに
 基本事項
 新プラットフォームへの移植
 アプリケーション開発
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 16
移植前のチェック
 ターゲット・プラットフォーム
 RAM/RAM容量(ROM不足は RAMで代用可能)
 CPU アーキテクチャ
 gcc利用時の最低メモリ目安
 RAM 256KB / ROM 512KB (Thumb / Thumb2 命令)
 コンパイラとデバッガ
 Windows上で動作するクロスコンパイラ
 Native 実装 vs. “OS on OS” 実装
 ターゲット・プラットフォームの適正
 ツール類の準備
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 17
移植に必要な知識
 組み込みシステム全般
 割り込み処理, 割り込みVector, Cache, MMU, PLL
 ブートローダ
 移植対象のCPU, ターゲット・ボード
 データシート, 回路図, メモリマップ, クロック
 ツール
 Toolchain(コンパイラ, アセンブラ, リンカ, ライブラリアン)
C, C++, CPUのアセンブラ命令, コマンドプロンプト, VB Script
 デバッガ, JTAG ICE, Eclipse, OpenOCD+GDB
 OSアーキテクチャとリソース管理
 メモリ, タイマ, 割り込み, イベント
 .NET Framework と CLR
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 18
開発環境の準備
 ソフトウェア環境
 Visual Studio 2012 (VC++ 2012 exp, VC# 2012 exp も可)
 Windows SDK 8.0 (MSBuild)
 .NET Micro Framework 4.3 SDK
 .NET Micro Framework 4.3 Porting Kit
 クロスコンパイラ, デバッガ (gcc, gdb, …)
 PKでの検証済 GDB (4.2.1)
CodeSourcery arm-2007q3-53-arm-none-eabi.exe
 その他のツール
 ハードウェア環境
 ターゲット・ボード(プラットフォーム)と JTAG-ICE
ドットNETまいくろバンザイ倶楽部
他のgcc, gdbは各自で
対応させる必要有
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 19
移植で使用するツール
 デバッグ
 JTAG ICE, またはOpenOCD
 gdb (Compiler 付属)
 Eclipse (IDE, ソースコードデバッグ)
 Java SE (Eclipse 動作に必須)
 測定器、信号観測ツール
 ソースコード管理
 7zip, WinMerge, VSS, svn, …
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 20
移植の主要作業
 開発環境構築と基本設計
 環境変数設定&クロス開発用ビルドスクリプト作成
 メモリ割当て設計&Scatter ファイル設定
 Solution の作成
 ビルド&デバッグ
 NativeSample を動作させる
 ブートローダ, 初期化処理 (Clock, Cache, MMU, PLL)
 ドライバ, PAL IF (Flash ROMドライバは必須, UART)
 TinyCLR の動作
 TinyBooter, アプリケーション・ロードとデバッグIF
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 ドットNETまいくろバンザイ倶楽部 21
ビルド&デバッグ
 NativeSample
 Native Code での”Hello world” 表示出力
 ビルド環境の検証(自由にカスタマイズ可能)
 ドライバ類の初期化&動作の検証
 TinyCLR
 .NET Micro Frameworkの移植対象・本体
 実行にはIL (コンパイル済アセンブリ)が必須
 Product¥Sampleディレクトリ(HelloWorld, Network など)
 TinyBooter
 NETMF 純正ブートローダ(MFDepoy IF)
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 ドットNETまいくろバンザイ倶楽部 22
TinyCLRとアセンブリの実行動作
アセンブリ検索
初期化
Debugger 接続
アセンブリのロード
アセンブリの実行
起動
デプロイ後
無し
Flash ROM
書き込み
‘F5’ キーで
ビルド、デプロイ、
実行、デバッグ
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 23
考察:Native 環境への移植
 利点
 全ソースコードが用意されている
 ブートローダ, CPU初期化, リソース管理
 動作している実機サンプルが入手し易い
 割り込み / イベント処理が実装し易い
 欠点
 未対応アーキテクチャには移植し難い
 クロスコンパイル, デバッグ環境を手当てする必要
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 24
考察: OS on OS 環境への移植
 利点
 OSが用意している開発環境を流用可能
 JTAG-ICEの代わりにデバッガで代用可能
 1回移植すれば、同一OSへの移植が容易
 欠点
 参考にするソースコードが用意されていない
 動作している実機サンプルが入手し難い
 OS依存APIを変換する作業(PAL層開発)が必須
(Timer, Event, Select, Socket, …)
 ドライバの移植数、作業工数はNativeよりも多い
ドットNETまいくろバンザイ倶楽部
参考: .NET Micro Framework for Linux
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 25
セッション内容
 はじめに
 基本事項
 新プラットフォームへの移植
 アプリケーション開発
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 26
アプリケーション開発の基本
 C# での開発が基本
 Visual Basicも利用可能
 C, C++, Assemblerは使えない
 Flash ROM 書き込みデバッグが前提
 エミュレータ利用
 強力なソースコード・デバッガ
 .NET アセンブリの送りこみ(デプロイ)
 オンライン・デバッグ
 ICE不要(使えない)
ドットNETまいくろバンザイ倶楽部
究極のプログラミング言語
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/3/7 27
C# プログラミング言語のルーツ
 登場時期と系統
Device Drivers, Ltd.
Mesa
Delphi
SmallTalk
Cedar
Pascal
Java
C#
1970年
1980年
1990年
2000年
BCPL
C
C++
UCSD Pascal
Turbo Pascal
J#
Anders Hejlsberg
Niklaus Wirth
James Gosling, Bill Joy
Alan Kay
Kernighan & Ritchie
Bjarne Stroustrup
Objective-C
Brad Cox, Steve Jobs
Kenneth Bowles
Turbo C
角丸は中間言語型
Cでプログラミングするには
人生は短すぎる
by Miguel de Icaza, Mono Project
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 28
アプリケーション開発手順
 事前調査・基本設計
 Interface 仕様の確認 (H/W, S/W, Network, …)
 コーディング
 Full .NET 環境用コードの流用
 デバッグ
 エミュレータ, オンライン・デバッガ
 Full .NET 環境でのデバッグ (ソース流用化)
 デプロイ
 ROM焼き, 配布用署名付きコード生成
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 29
デバッガ インターフェース
 デバッガとの接続手段:3種類から選択
 独自ハードウエア開発の注意点
 OS更新用のデバッガ(ブート)・スイッチの必須
 通常はGPIOタクトSW(ボタン), DIP-SW等を使用
ドットNETまいくろバンザイ倶楽部
ドライバ
ドライバ
ドライバ
Serial (RS232C)
USB
LAN (TCP/IP)
Host PC Target
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ .NET Gadgeteer とは?
2013/6/22 ドットNETまいくろバンザイ倶楽部 30
 M$ 研究所が開発している
.NET Micro Framework ベース組み込みシステム統合
開発環境とそれを構成するモジュール製品群
 MMU無しマイコン上でVisual Studioで開発した
.NETアセンブリ(中間コード)をインタプリタ実行
 GUI操作で自動的に
初期化コードとクラスラ
イブラリを追加
.NET MF
OS / Driver
Interpreter
App. / Lib.
Gadgeteer
Open
Source
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ .NET Gadgeteer とは?
2013/6/22 ドットNETまいくろバンザイ倶楽部 31
 具体的には次のもの
 ハードウェア
 専用メインボード、専用モジュール群、
開発環境としての Windows PC
 ソフトウェア
 ROM化されたOS、組み込み用各種ドライバとライブラリ、
Visual Studio用Plug In(ライブラリとGUIツール、シミュレータ)
 新規モジュール開発やカスタマイズ可能
 オープンソース
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22
.NET Gadgeteer とは?
 C#/VB言語レベルでライブラリと豊富なミドルウェアを提供
 プロトコル、グラフィック
 ファイルシステム
 サービス、マルチスレッド
 6種のCPUボードと
60種以上の
アクチュエータ,
センサー,
ネットワークアダプタ,
コネクティビティ,
ディスプレイ等の
モジュール を提供
ドットNETまいくろバンザイ倶楽部 32
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 33
事例:つぶやきステーション
 インターフェース 2012年8月号 特集
少ないメモリでリッチなライブラリのオープン・ソースOSを試す
定番Visual StudioとC#でマイコン開発にトライ! ~Windowsプログラマでもできる~
 第3章 気圧/温度/湿度をTwitterに全自動つぶやき
出来あい品ですぐに試すWebウェザーつぶやきステーションの製作
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 34
事例:Connecting your station to the cloud
 Xivery, (COSM, Pachube) への接続
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ 事例:EnOceanセンサーシステム
2013/6/22 ドットNETまいくろバンザイ倶楽部 35
Micro
Processor
Local
Sensor
TCM3x0C / ESP3
Local
Actuator
Remote Management TX
Response
Remote Management RX
Data Transmit
Data Receive
Local Management
Cloud
• Multi Thread
• Queue
• Messaging
• Synchronize
• Semaphore
• Priority
複雑な
マルチスレッド
アプリケーション
• EnOcean無線データ受信
• 新無線通信方式検証や
プロトタイピングに最適開発期間を短縮
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/6/22 36
まとめ
 はじめに:参考情報
 基本事項
 .NET Micro Framework 概要
 新プラットフォームへの移植
 一般的な移植手順
 移植に関する考察
 アプリケーション開発
 開発手順、事例
ドットNETまいくろバンザイ倶楽部
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/2/23 ドットNETまいくろバンザイ倶楽部 37
参考文献:移植
 Porting Kit 付属の説明書
 RCLPort.chm
 Gadgeteer 機材提供会社
 Beginners' Guide to Porting NETMF
http://www.ghielectronics.com/downloads/FEZ/Beginners%20Guide%2
0to%20Porting%20NETMF.pdf
 インターフェース誌
 Eclipse デバッグ関連
 How to use Eclipse and GDB to debug the .NET Micro Framework
http://discovertheexperience.blogspot.jp/2008/11/how-to-use-eclipse-and-gdb-to-debug-net_09.html
 Configuring Eclipse + OpenOCD + GCC to Debug NativeSample
http://msmicroframework.blogspot.jp/2009/02/configuring-eclipse-openocd-gcc-to.html
 PS3とLinux、電子工作も
http://todotani.cocolog-nifty.com/blog/
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/2/23 ドットNETまいくろバンザイ倶楽部 38
参考サイト:NETMF
 開発コミュニティと配布
 NETMF Codeplex Projects
http://netmf.codeplex.com/
http://netmf.codeplex.com/documentation
 Microsoft .NET Micro Framework
http://www.netmf.com/
 おすすめサイト
 Team Blog
http://blogs.msdn.com/b/netmfteam/
 Microsoft .NET Micro Framework Tools & Resources
http://informatix.miloush.net/microframework/
 GHI Electromics
http://www.ghielectronics.com/
 いまさら聞けない .NET Micro Framework入門 (@IT)
http://monoist.atmarkit.co.jp/fembedded/articles/netmicro/netmicro_01a.html
オープンソースカンファレンス 2013 Nagoya
ドットNET
まいくろ
バンザイ
2013/2/23 ドットNETまいくろバンザイ倶楽部 39
参考サイト:Gadgeteer
 開発コミュニティと配布
 Microsoft .NET Gadgeteer
http://www.netmf.com/gadgeteer/
 Gadgeteer Source codes
http://gadgeteer.codeplex.com/
 .NET Gadgeteer - Micro Research
http://research.microsoft.com/en-us/projects/gadgeteer/
 おすすめサイト
 技術との戯れ
http://yseosoft.wordpress.com/tag/net-gadgeteer/
 デバイスとITの架け橋
http://blogs.msdn.com/b/hirosho/
 奈良高専 土井研
http://doilab.net/web/jisyu/winnext/dotnetmf/index.html
 NET Gadgeteer - TINYCLR.JPへようこそ
http://tinyclr.jp/products/fez-gadgeteer.htm

More Related Content

PDF
NetBSD8.0 on UEFI Bootloader and Windows Tablet #osc18hi
PDF
Recently Mobile Linux Hacking after Kernel4.16RC 最近のKernel4.16RC以降の ガジェットLin...
PDF
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
PDF
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...
PDF
はじめての超格安2,500円 Nexus7 2012改造と Android7.1.2 AOSP、postmarketOS in 2020 Beginner...
PDF
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
PDF
はじめての4,500円OS無しジャンクIntel MacbookにLinux,NetBSDインストール iin OSC 2020 Online/Kyoto...
PDF
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...
NetBSD8.0 on UEFI Bootloader and Windows Tablet #osc18hi
Recently Mobile Linux Hacking after Kernel4.16RC 最近のKernel4.16RC以降の ガジェットLin...
Bug for Install Linux on Atom Z8700 Portabook ポータブックのLinuxインストールバグ対策 2018 #東海道らぐ
はじめてのUserLAnd。AndroidでUbuntu,Debian ArchLinuxなどをprootで動かそう Beginner for inst...
はじめての超格安2,500円 Nexus7 2012改造と Android7.1.2 AOSP、postmarketOS in 2020 Beginner...
Beginner for install Android applications in Xiaomi MiReader  はじめてのXiaomi MiR...
はじめての4,500円OS無しジャンクIntel MacbookにLinux,NetBSDインストール iin OSC 2020 Online/Kyoto...
Beginner for install US$40 JUNK Intel Macbook in 2020 はじめての4,500円ジャンクIntel Ma...

What's hot (20)

PDF
Hacking with x86 Windows Tablet and mobile devices on openSUSE #opensuseasia17
PDF
超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tk
PDF
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
PDF
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作  Beginner for UserLAnd a...
PDF
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux.
PDF
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
PDF
はじめてのWubi for Ubuntu 21.04 ドンキ格安 第2世代UMPC NANOTE P8
PDF
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
PDF
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
PDF
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
PDF
超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...
PDF
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
PDF
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 京都 #osckyoto Hacking the third Smart...
PDF
GPD-WINや中華ノートPCなどATOM機器に 各種Linuxディストリを入れて遊ぼう Install Linux Distributions on G...
PDF
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...
PDF
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
PDF
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 東京Fall Hacking the third Smartphone ...
PDF
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
PDF
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
PDF
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
Hacking with x86 Windows Tablet and mobile devices on openSUSE #opensuseasia17
超激安WinタブレットにLinux、*BSDを入れて 賢く経済的にリサイクルしよう in OSC東京2018 #osc18tk
Hacking with x86 Windows Tablet and mobile devices on Linux #FOSSASIA
はじめての980円ジャンクガラホ改造, UserLAndとTermuxでUbuntuなどLinux動作  Beginner for UserLAnd a...
Android Nexus7でLinuxを色々と遊んでみよう Hacking of Android Nexus7 by Linux.
Windows10タブレットに各種Linuxディストリを入れて遊ぼう 2017年度東京Spring版
はじめてのWubi for Ubuntu 21.04 ドンキ格安 第2世代UMPC NANOTE P8
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
ドライバハッキング。UMPC、Windowsタブレット にLinux、*BSDを入れて遊ぼう  2017年度京都版 #osckyoto
はじめてのSSD,MicroSD,USBメモリ延命方法 in Linux Beginner for Linux long-lifetime in USB...
超激安WinタブレットにLinux、*BSDを入れよう 最新情報編 in KOF2018 Install Linux and Re-use 「newer ...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC Online2020 #osc20on Hacking Linux ...
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 京都 #osckyoto Hacking the third Smart...
GPD-WINや中華ノートPCなどATOM機器に 各種Linuxディストリを入れて遊ぼう Install Linux Distributions on G...
WindowsタブレットでLinux、*BSD改造特集と裏技ハッキング in OSC東京2020 #osc20tk Hacking Linux and *...
はじめてのpostmarketOSインストール Windowsタブレット #kagolug Beginner for install postmar...
第3のスマートフォンOSハッキングと各種ガジェット 改造最新情報 in 2019 東京Fall Hacking the third Smartphone ...
Beginner for install DOSBox-X and PC-98 emulation. 初めてのDOSBox-XインストールとPC-98エ...
Windows10タブレットにUbuntu16.04を色々入れてみた 2016年度版 Install Ubuntu16.04 on Windows10 T...
最近のWindowsタブレット、ガジェットLinuxハッキング #osc17sm
Ad

Similar to 2013 06-22osc nagoya-netmf (20)

PPTX
2015 0227 OSC-Spring Tokyo NETMF
PPTX
2014 1018 OSC-Fall Tokyo NETMF
PDF
2014 0228 OSC-Spring Tokyo NETMF
PDF
2013 1019osc-fallnetmf
PPTX
2015 1025 OSC-Fall Tokyo NETMF
PPTX
OSC Tokyo/Fall NETMF 161105
PPTX
OSC Nagoya NETMF 160528
PPTX
OSC Tokyo/Spring NETMF 170311
PPTX
Netmf-180224
PDF
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
PDF
MeeGo Seminar Winter Porting 20101209
PDF
.NET Micro Framework の基礎
PPT
Android™組込み開発基礎コース BeagleBoard編
PDF
Sencha & Delphi Ready Studiy
PDF
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
KEY
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
PDF
Let's play with Goldfish
PDF
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
PPTX
LLILUM and TinyCLR OS
PDF
組み込み入門
2015 0227 OSC-Spring Tokyo NETMF
2014 1018 OSC-Fall Tokyo NETMF
2014 0228 OSC-Spring Tokyo NETMF
2013 1019osc-fallnetmf
2015 1025 OSC-Fall Tokyo NETMF
OSC Tokyo/Fall NETMF 161105
OSC Nagoya NETMF 160528
OSC Tokyo/Spring NETMF 170311
Netmf-180224
Android が巨大すぎてお困りのあなたへ~組み込み Windows の今と、これから~
MeeGo Seminar Winter Porting 20101209
.NET Micro Framework の基礎
Android™組込み開発基礎コース BeagleBoard編
Sencha & Delphi Ready Studiy
OSC 2012 Microsoft Session [マイクロソフトの魅せるセンサー×クラウド技術]
オープン・ソースで構築するARMマイコン開発環境 ―― GCC,Eclipse,OpenOCDで統合開発環境,JTAGデバッグもできる!
Let's play with Goldfish
デブサミ2013 【15-B-2】iOS/Android向け開発をビジュアルに!
LLILUM and TinyCLR OS
組み込み入門
Ad

More from Atomu Hidaka (20)

PPTX
Guidance for beginners and experts on how to set up a Windows driver developm...
PPTX
What the end of support of Windows 10 will mean?
PPTX
Explains how to use USBView, which is useful for analyzing Windows USB problems
PPTX
Explaining how to use MBR2GPT in preparation for the end of Windows 10 support
PPTX
The requirements for installing Windows 11 on older PCs have been relaxed.
PPTX
EnOcean-iot, Generative-AI, and RAG for LLM
PPTX
Introduction to the Thunder Cloud Project Technical Committee
PPTX
WSL for IoT, Microcomputer, and Yocto Project
PPTX
Tips and tricks for WSL users: Two easy and reliable ways to get started with...
PPTX
Customize Chat-GPT using Azure OpenAI Studio
PPTX
Useful Tips and Tricks for Windows 11 TPM Part 2
PPTX
How to use EnOcean Gateway with Azure OpenAI
PPTX
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
PPTX
Tips and Tricks for developing Windows APO drivers
PPTX
Useful Tips and Tricks for Windows 11 TPM
PPTX
Develop Windows 11 drivers with GitHub Copilot's AI capabilities
PDF
Windows 11 22H2 Feature-Update, Copilot, and Tips
PPTX
Windows 11 information that can be used at the development site
PPTX
ChatGPT solution with EnOcean Gateway
PPTX
Windows ChatGPT Bing AI
Guidance for beginners and experts on how to set up a Windows driver developm...
What the end of support of Windows 10 will mean?
Explains how to use USBView, which is useful for analyzing Windows USB problems
Explaining how to use MBR2GPT in preparation for the end of Windows 10 support
The requirements for installing Windows 11 on older PCs have been relaxed.
EnOcean-iot, Generative-AI, and RAG for LLM
Introduction to the Thunder Cloud Project Technical Committee
WSL for IoT, Microcomputer, and Yocto Project
Tips and tricks for WSL users: Two easy and reliable ways to get started with...
Customize Chat-GPT using Azure OpenAI Studio
Useful Tips and Tricks for Windows 11 TPM Part 2
How to use EnOcean Gateway with Azure OpenAI
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
Tips and Tricks for developing Windows APO drivers
Useful Tips and Tricks for Windows 11 TPM
Develop Windows 11 drivers with GitHub Copilot's AI capabilities
Windows 11 22H2 Feature-Update, Copilot, and Tips
Windows 11 information that can be used at the development site
ChatGPT solution with EnOcean Gateway
Windows ChatGPT Bing AI

2013 06-22osc nagoya-netmf

  • 1. オープンソースカンファレンス 2013 Nagoya 2013/6/22 ドットNETまいくろバンザイ倶楽部 1 ドットNETまいくろ バンザイ倶楽部 http://www.facebook.com/groups/netmf 日高亜友 - 簡単に使える Microsoft の小型組み込みOS - @AtomuHidaka オープンソースになったマイコン開発環境 .NET Micro Frameworkの紹介。 ドットNET まいくろ バンザイ
  • 2. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 2 セッション内容  はじめに  基本事項  新プラットフォームへの移植  アプリケーション開発 ドットNETまいくろバンザイ倶楽部
  • 3. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 3 はじめに:参考情報  インターフェース誌 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まいくろバンザイ倶楽部
  • 4. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 4 .NET Micro Framework とは?  M$ 研究所 開発の組み込みOS  Visual C# / Visual Basicで開発した IL .NET アセンブリ を中間コードインタプリタで実行  豊富なドライバとライブラリを標準装備  オープンソース・ライセンスで公開(Apache V2)  20種以上のプラットフォームに移植されて動作  .NET Micro Framework (NETMF) 移植済みSOC  業務アプリケーション・システム応用事例  アプリケーション開発が”超”簡単な組み込みOS ドットNETまいくろバンザイ倶楽部
  • 5. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 5 セッション内容  はじめに  基本事項  新プラットフォームへの移植  アプリケーション開発 ドットNETまいくろバンザイ倶楽部
  • 6. オープンソースカンファレンス 2013 Nagoya ドット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  2010年 V4.1 for Big Endian / lwIP  2011年 V4.2 for Visual Basic  2012年 V4.3 for Visual Studio 2012 2013/6/22 6ドットNETまいくろバンザイ倶楽部
  • 7. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 7 私とNETMFのかかわり  2008年にソースコード (V3.5) 購入&評価  2009年以降、毎年関連記事執筆  NETMF関連  2010年より搭載ボードの輸入を開始  NETMF 関連受託開発  ボード開発、移植作業、アプリケーション開発  各種普及活動  イベント、セミナー、勉強会、雑誌記事等 ドットNETまいくろバンザイ倶楽部
  • 8. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 8 NETMFの本質  本来は、Windows CE 未満のプラットフォーム用 組込みシステム向け製品となるはずだった OS  移植キット販売  ライセンス体系  製品品質  2010年にオープンソース化された  競合OSの台頭 ⇒ 製品相当の機能・性能・品質 を無料で公開 ドットNETまいくろバンザイ倶楽部
  • 9. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ アーキテクチャ  全体構成 2 種類の実装方法 - Native Platform - “OS on OS” solution 2013/6/22 9ドットNETまいくろバンザイ倶楽部 アプリケーション開発 ライブラリ開発 プラットフォーム移植 CLR: Common Language Runtime HAL: Hardware Abstraction Layer PAL: Platform Abstraction Layer
  • 10. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ OSとしての提供機能  IL(.NETのアセンブリ)の実行環境 = TinyCLR  タイマ, 割り込みハンドラ, マルチスレッド, スケジューラ  ブートローダ, 各種デバイスドライバ, リソースマネージャ  組み込み環境対応  MMU 不要  最小 64KB RAM / 256KB ROM (特別な環境)  標準サポート ARM7/9/Cortex-M3, Blackfin, SH-2/2A  サポート機能  ブートローダ, アプリケーションローダ, デバッガIF 2013/6/22 10ドットNETまいくろバンザイ倶楽部
  • 11. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 移植方法の選択  Native実装  TinyCLR直接実装 VS. TinyBooter実装  TinyCLR / TinyBooter のメンテナンス手順が必須  他のブートローダ利用  U-Boot, T-Monitor (T-Engine)等  Network ブート  OS on OS  他のOSのアプリケーションとしてNETMFを実装  ソースコードが公開されているので 実際は何とでも作ることが可能 2013/6/22 11ドットNETまいくろバンザイ倶楽部 TinyBooter = NETMF専用ブートローダ
  • 12. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 12 SDK vs. PK (Porting Kit)  SDK: 組み込みアプリケーション開発  アプリケーション開発に必須  Visual Studio / VC# Express に組み込んで使用  Simulator, Debugger, Deployment Tools を含む  PK: 動作プラットフォームの構築(移植)  .NET Micro Framework の移植 に必須  ほかに クロスコンパイラ(+デバッガ)が必須  ツール類を含めた全ソースコードが提供  ほとんどを C++ で記述 (一部アセンブラ, C, C#) ドットNETまいくろバンザイ倶楽部 バージョンを 合わせる必要がある
  • 13. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 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まいくろバンザイ倶楽部 展示デモ: SAM9261_EK
  • 14. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 14 ドライバとサービス 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まいくろバンザイ倶楽部
  • 15. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 15 セッション内容  はじめに  基本事項  新プラットフォームへの移植  アプリケーション開発 ドットNETまいくろバンザイ倶楽部
  • 16. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 16 移植前のチェック  ターゲット・プラットフォーム  RAM/RAM容量(ROM不足は RAMで代用可能)  CPU アーキテクチャ  gcc利用時の最低メモリ目安  RAM 256KB / ROM 512KB (Thumb / Thumb2 命令)  コンパイラとデバッガ  Windows上で動作するクロスコンパイラ  Native 実装 vs. “OS on OS” 実装  ターゲット・プラットフォームの適正  ツール類の準備 ドットNETまいくろバンザイ倶楽部
  • 17. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 17 移植に必要な知識  組み込みシステム全般  割り込み処理, 割り込みVector, Cache, MMU, PLL  ブートローダ  移植対象のCPU, ターゲット・ボード  データシート, 回路図, メモリマップ, クロック  ツール  Toolchain(コンパイラ, アセンブラ, リンカ, ライブラリアン) C, C++, CPUのアセンブラ命令, コマンドプロンプト, VB Script  デバッガ, JTAG ICE, Eclipse, OpenOCD+GDB  OSアーキテクチャとリソース管理  メモリ, タイマ, 割り込み, イベント  .NET Framework と CLR ドットNETまいくろバンザイ倶楽部
  • 18. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 18 開発環境の準備  ソフトウェア環境  Visual Studio 2012 (VC++ 2012 exp, VC# 2012 exp も可)  Windows SDK 8.0 (MSBuild)  .NET Micro Framework 4.3 SDK  .NET Micro Framework 4.3 Porting Kit  クロスコンパイラ, デバッガ (gcc, gdb, …)  PKでの検証済 GDB (4.2.1) CodeSourcery arm-2007q3-53-arm-none-eabi.exe  その他のツール  ハードウェア環境  ターゲット・ボード(プラットフォーム)と JTAG-ICE ドットNETまいくろバンザイ倶楽部 他のgcc, gdbは各自で 対応させる必要有
  • 19. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 19 移植で使用するツール  デバッグ  JTAG ICE, またはOpenOCD  gdb (Compiler 付属)  Eclipse (IDE, ソースコードデバッグ)  Java SE (Eclipse 動作に必須)  測定器、信号観測ツール  ソースコード管理  7zip, WinMerge, VSS, svn, … ドットNETまいくろバンザイ倶楽部
  • 20. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 20 移植の主要作業  開発環境構築と基本設計  環境変数設定&クロス開発用ビルドスクリプト作成  メモリ割当て設計&Scatter ファイル設定  Solution の作成  ビルド&デバッグ  NativeSample を動作させる  ブートローダ, 初期化処理 (Clock, Cache, MMU, PLL)  ドライバ, PAL IF (Flash ROMドライバは必須, UART)  TinyCLR の動作  TinyBooter, アプリケーション・ロードとデバッグIF ドットNETまいくろバンザイ倶楽部
  • 21. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 ドットNETまいくろバンザイ倶楽部 21 ビルド&デバッグ  NativeSample  Native Code での”Hello world” 表示出力  ビルド環境の検証(自由にカスタマイズ可能)  ドライバ類の初期化&動作の検証  TinyCLR  .NET Micro Frameworkの移植対象・本体  実行にはIL (コンパイル済アセンブリ)が必須  Product¥Sampleディレクトリ(HelloWorld, Network など)  TinyBooter  NETMF 純正ブートローダ(MFDepoy IF)
  • 22. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 ドットNETまいくろバンザイ倶楽部 22 TinyCLRとアセンブリの実行動作 アセンブリ検索 初期化 Debugger 接続 アセンブリのロード アセンブリの実行 起動 デプロイ後 無し Flash ROM 書き込み ‘F5’ キーで ビルド、デプロイ、 実行、デバッグ
  • 23. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 23 考察:Native 環境への移植  利点  全ソースコードが用意されている  ブートローダ, CPU初期化, リソース管理  動作している実機サンプルが入手し易い  割り込み / イベント処理が実装し易い  欠点  未対応アーキテクチャには移植し難い  クロスコンパイル, デバッグ環境を手当てする必要 ドットNETまいくろバンザイ倶楽部
  • 24. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 24 考察: OS on OS 環境への移植  利点  OSが用意している開発環境を流用可能  JTAG-ICEの代わりにデバッガで代用可能  1回移植すれば、同一OSへの移植が容易  欠点  参考にするソースコードが用意されていない  動作している実機サンプルが入手し難い  OS依存APIを変換する作業(PAL層開発)が必須 (Timer, Event, Select, Socket, …)  ドライバの移植数、作業工数はNativeよりも多い ドットNETまいくろバンザイ倶楽部 参考: .NET Micro Framework for Linux
  • 25. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 25 セッション内容  はじめに  基本事項  新プラットフォームへの移植  アプリケーション開発 ドットNETまいくろバンザイ倶楽部
  • 26. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 26 アプリケーション開発の基本  C# での開発が基本  Visual Basicも利用可能  C, C++, Assemblerは使えない  Flash ROM 書き込みデバッグが前提  エミュレータ利用  強力なソースコード・デバッガ  .NET アセンブリの送りこみ(デプロイ)  オンライン・デバッグ  ICE不要(使えない) ドットNETまいくろバンザイ倶楽部 究極のプログラミング言語
  • 27. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/3/7 27 C# プログラミング言語のルーツ  登場時期と系統 Device Drivers, Ltd. Mesa Delphi SmallTalk Cedar Pascal Java C# 1970年 1980年 1990年 2000年 BCPL C C++ UCSD Pascal Turbo Pascal J# Anders Hejlsberg Niklaus Wirth James Gosling, Bill Joy Alan Kay Kernighan & Ritchie Bjarne Stroustrup Objective-C Brad Cox, Steve Jobs Kenneth Bowles Turbo C 角丸は中間言語型 Cでプログラミングするには 人生は短すぎる by Miguel de Icaza, Mono Project
  • 28. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 28 アプリケーション開発手順  事前調査・基本設計  Interface 仕様の確認 (H/W, S/W, Network, …)  コーディング  Full .NET 環境用コードの流用  デバッグ  エミュレータ, オンライン・デバッガ  Full .NET 環境でのデバッグ (ソース流用化)  デプロイ  ROM焼き, 配布用署名付きコード生成 ドットNETまいくろバンザイ倶楽部
  • 29. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 29 デバッガ インターフェース  デバッガとの接続手段:3種類から選択  独自ハードウエア開発の注意点  OS更新用のデバッガ(ブート)・スイッチの必須  通常はGPIOタクトSW(ボタン), DIP-SW等を使用 ドットNETまいくろバンザイ倶楽部 ドライバ ドライバ ドライバ Serial (RS232C) USB LAN (TCP/IP) Host PC Target
  • 30. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ .NET Gadgeteer とは? 2013/6/22 ドットNETまいくろバンザイ倶楽部 30  M$ 研究所が開発している .NET Micro Framework ベース組み込みシステム統合 開発環境とそれを構成するモジュール製品群  MMU無しマイコン上でVisual Studioで開発した .NETアセンブリ(中間コード)をインタプリタ実行  GUI操作で自動的に 初期化コードとクラスラ イブラリを追加 .NET MF OS / Driver Interpreter App. / Lib. Gadgeteer Open Source
  • 31. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ .NET Gadgeteer とは? 2013/6/22 ドットNETまいくろバンザイ倶楽部 31  具体的には次のもの  ハードウェア  専用メインボード、専用モジュール群、 開発環境としての Windows PC  ソフトウェア  ROM化されたOS、組み込み用各種ドライバとライブラリ、 Visual Studio用Plug In(ライブラリとGUIツール、シミュレータ)  新規モジュール開発やカスタマイズ可能  オープンソース
  • 32. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 .NET Gadgeteer とは?  C#/VB言語レベルでライブラリと豊富なミドルウェアを提供  プロトコル、グラフィック  ファイルシステム  サービス、マルチスレッド  6種のCPUボードと 60種以上の アクチュエータ, センサー, ネットワークアダプタ, コネクティビティ, ディスプレイ等の モジュール を提供 ドットNETまいくろバンザイ倶楽部 32
  • 33. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 33 事例:つぶやきステーション  インターフェース 2012年8月号 特集 少ないメモリでリッチなライブラリのオープン・ソースOSを試す 定番Visual StudioとC#でマイコン開発にトライ! ~Windowsプログラマでもできる~  第3章 気圧/温度/湿度をTwitterに全自動つぶやき 出来あい品ですぐに試すWebウェザーつぶやきステーションの製作 ドットNETまいくろバンザイ倶楽部
  • 34. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 34 事例:Connecting your station to the cloud  Xivery, (COSM, Pachube) への接続 ドットNETまいくろバンザイ倶楽部
  • 35. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 事例:EnOceanセンサーシステム 2013/6/22 ドットNETまいくろバンザイ倶楽部 35 Micro Processor Local Sensor TCM3x0C / ESP3 Local Actuator Remote Management TX Response Remote Management RX Data Transmit Data Receive Local Management Cloud • Multi Thread • Queue • Messaging • Synchronize • Semaphore • Priority 複雑な マルチスレッド アプリケーション • EnOcean無線データ受信 • 新無線通信方式検証や プロトタイピングに最適開発期間を短縮
  • 36. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/6/22 36 まとめ  はじめに:参考情報  基本事項  .NET Micro Framework 概要  新プラットフォームへの移植  一般的な移植手順  移植に関する考察  アプリケーション開発  開発手順、事例 ドットNETまいくろバンザイ倶楽部
  • 37. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/2/23 ドットNETまいくろバンザイ倶楽部 37 参考文献:移植  Porting Kit 付属の説明書  RCLPort.chm  Gadgeteer 機材提供会社  Beginners' Guide to Porting NETMF http://www.ghielectronics.com/downloads/FEZ/Beginners%20Guide%2 0to%20Porting%20NETMF.pdf  インターフェース誌  Eclipse デバッグ関連  How to use Eclipse and GDB to debug the .NET Micro Framework http://discovertheexperience.blogspot.jp/2008/11/how-to-use-eclipse-and-gdb-to-debug-net_09.html  Configuring Eclipse + OpenOCD + GCC to Debug NativeSample http://msmicroframework.blogspot.jp/2009/02/configuring-eclipse-openocd-gcc-to.html  PS3とLinux、電子工作も http://todotani.cocolog-nifty.com/blog/
  • 38. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/2/23 ドットNETまいくろバンザイ倶楽部 38 参考サイト:NETMF  開発コミュニティと配布  NETMF Codeplex Projects http://netmf.codeplex.com/ http://netmf.codeplex.com/documentation  Microsoft .NET Micro Framework http://www.netmf.com/  おすすめサイト  Team Blog http://blogs.msdn.com/b/netmfteam/  Microsoft .NET Micro Framework Tools & Resources http://informatix.miloush.net/microframework/  GHI Electromics http://www.ghielectronics.com/  いまさら聞けない .NET Micro Framework入門 (@IT) http://monoist.atmarkit.co.jp/fembedded/articles/netmicro/netmicro_01a.html
  • 39. オープンソースカンファレンス 2013 Nagoya ドットNET まいくろ バンザイ 2013/2/23 ドットNETまいくろバンザイ倶楽部 39 参考サイト:Gadgeteer  開発コミュニティと配布  Microsoft .NET Gadgeteer http://www.netmf.com/gadgeteer/  Gadgeteer Source codes http://gadgeteer.codeplex.com/  .NET Gadgeteer - Micro Research http://research.microsoft.com/en-us/projects/gadgeteer/  おすすめサイト  技術との戯れ http://yseosoft.wordpress.com/tag/net-gadgeteer/  デバイスとITの架け橋 http://blogs.msdn.com/b/hirosho/  奈良高専 土井研 http://doilab.net/web/jisyu/winnext/dotnetmf/index.html  NET Gadgeteer - TINYCLR.JPへようこそ http://tinyclr.jp/products/fez-gadgeteer.htm