2015 1025 OSC-Fall Tokyo NETMF
-
Upload
atomu-hidaka -
Category
Technology
-
view
1.306 -
download
3
Transcript of 2015 1025 OSC-Fall Tokyo NETMF
オープンソースカンファレンス 2015 Tokyo/Fall
2015/10/25 ドット NET まいくろバンザイ倶楽部 1
ドット NET まいくろ バンザイ倶楽部日高亜友
- V4.4 リリースと最新情報 , LLILUM -
オープンソースになったマイコン開発環境.NET Micro Framework の紹介。
ドット NETまいくろバンザイ
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
22015/10/25
セッション内容
.NET Micro Framework とは?
新プラットフォームへの移植と V4.4 リリース
最新情報 , LLILUM
ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
32015/10/25 ドット NETまいくろバンザイ倶楽部
.NET Micro Framework とは?
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
42015/10/25
.NET Micro Framework とは? 元々は Microsoft Research 開発の組み込み OS Visual C# / Visual Basic で開発した IL
.NET アセンブリ を中間コードインタプリタで実行
豊富なドライバとライブラリを標準装備 オープンソース・ライセンスで公開 (Apache
V2) 30 種以上のプラットフォームに移植されて動
作 .NET Micro Framework (NETMF) 移植済み SOC 業務アプリケーション・システム応用事例ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 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 2011 年 V4.2 for Visual Basic 2015 年 V4.4 for Visual Studio 2015
リポジトリ : CodePlex →GitHub
2015/10/25 5ドット NETまいくろバンザイ倶楽部
開発キット約 30 万円
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
62015/10/25
NETMF の本質 元 Windows CE 未満 MMU 無しプラット
フォーム 組込み製品となるはずだった OS
移植キット販売、製品ライセンス販売予定 だった 2010 年にオープンソース化
Apache V2 ライセンス→無償で商用利用可能⇒ 製品相当の機能・性能・品質 を無料で公開 2015 年 正式サポート製品 GR-Peach 国内販売 国産製品化第 1 号
2015 年に GitHub へ移行、コミュニティ化推進 ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ GitHub / netmf-interpreter
https://github.com/NETMF/netmf-interpreter
GitHubNETMF / netmf-interpreter
2015/10/25 7ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ アーキテクチャ
全体構成
2 種類の実装方法 - Native Platform - “OS on OS” solution
2015/10/25 8ドット NETまいくろバンザイ倶楽部
アプリケーション開発
ライブラリ開発プラットフォーム移
植
CLR: Common Language RuntimeHAL: Hardware Abstraction LayerPAL: Platform Abstraction Layer
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ OS としての提供機能 IL ( .NET のアセンブリ)の実行環境 = TinyCLR タイマ , 割り込みハンドラ , マルチスレッド ,
スケジューラ ブートローダ , 各種デバイスドライバ , リソースマ
ネージャ 組み込み環境対応
MMU 不要 標準メモリ 128KB RAM / 512KB ROM
標準サポート ARM7/9/Cortex-M3, Blackfin, SH-2/2A→ V4.4 で Cortex-M4 / STM32 F4 だ
けに? サポート機能
ブートローダ , アプリケーションローダ , デバッガ IF
2015/10/25 9ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
102015/10/25
ドライバとサービス
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まいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
プラットフォームとアプリケーション
自作ボードや未サポートボードに移植 CQ 出版等の移植事例(参考資料)
周辺ハードウェアを自作して動作 容易に接続可能→ .NET Gadgeteer
ライブラリやシステムを開発・改造 Emulator の開発、独自モジュールの開発
連係システムやアプリケーションを開発 他のシステムとの接続
PC, Smart Phone, Cloud 連係
2015/10/25 11ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
122015/10/25
SDK vs. PK (Porting Kit) SDK: 組み込みアプリケーション開発
アプリケーション開発に必須 Visual Studio / VC# Express に組み込んで使用 Simulator, Debugger, Deployment Tools を含む
PK : 動作プラットフォームの構築(移植) .NET Micro Framework の移植 に必須 ほかに クロスコンパイラ(+デバッガ)が必
須 ツール類を含めた全ソースコードが提供 ほとんどを C++ で記述 (一部アセンブラ , C,
C# )ドット NETまいくろバンザイ倶楽部
バージョンを合わせる必要がある
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
132015/10/25 ドット NETまいくろバンザイ倶楽部
組み込み開発で何ができるか?
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
142015/10/25
アプリケーション開発手順 事前調査・基本設計
Interface 仕様の確認 (H/W, S/W, Network, …) コーディング
Full .NET 環境用コードの流用 ソースコード・デバッグ
エミュレータ , オンライン・デバッガ Full .NET 環境でのデバッグ (ソース流用化)
デプロイ Flash ROM 焼き , 配布用署名付きコード生成
ドット NETまいくろバンザイ倶楽部
.NET Gadgeteeerで簡単に!
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
152015/10/25
デバッガ インターフェース デバッガとの接続手段: 3 種類から選択
独自ハードウエア開発の注意点 OS更新用のデバッガ(ブート)・スイッチの
対応通常は GPIO タクト SW (ボタン) , DIP-SW 等を使
用 ドット NETまいくろバンザイ倶楽部
ドライバ
ドライバ
ドライバ
Serial (RS232C)
USB
LAN (TCP/IP)Host PC Target
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ .NET Gadgeteer とは?
2015/10/25 ドット NETまいくろバンザイ倶楽部 16
.NET Micro Framework ベース組み込みシステム統合開発環境とそれを構成するモジュール製品群
MMU 無しマイコン上で Visual Studio で開発した.NET アセンブリ(中間コード)をインタプリタ実行
GUI操作で自動的に初期化コードとクラスライブラリを追加
.NET MF
OS / Driver
Interpreter
App. / Lib.
Gadgeteer
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ .NET Gadgeteer とは?
2015/10/25 ドット NETまいくろバンザイ倶楽部 17
具体的には次のもの ハードウェア
専用メインボード、専用モジュール群、開発環境としての Windows PC
ソフトウェア ROM 化された OS 、組み込み用各種ドライバとライブラリ、
Visual Studio 用 Plug In (ライブラリと GUI ツール、シミュレータ)
新規モジュール開発やカスタマイズ可能 オープンソース
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
2015/10/25
.NET Gadgeteer とは?
C#/VB言語レベルでライブラリと豊富なミドルウェアを提供 プロトコル、グラフィック ファイルシステム サービス、マルチスレッド
10 種以上の CPU ボードと100 種以上のアクチュエータ ,センサー , ネットワークアダプタ ,コネクティビティ ,ディスプレイ等のモジュール を提供
ドット NETまいくろバンザイ倶楽部 18
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ IoT入門キット事例 IoT 入門キット
Spider IoT 入門キット IoT 植物栽培キット EnOcean IoT 入門キット
2015/10/25 19ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
202015/10/25 ドット NETまいくろバンザイ倶楽部
V4.4 対応版新プラットフォームへの移植
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ V4.4 で何が変わったか? GitHub への移行 SDK 開発ツールの変更 Visual Studio 2015 のみ対応 OS は Windows 7~
10 ログイン名にスペースがあるとインストール出来な
い!バグ ARM-CMSIS 対応 テンプレートが 2CPU/ 2 ボードに激減
STM32系だけに! デバッグ機能の高速化と安定化 UWP に影響を受けたクラスライブラリのサポート バグ FIX2015/10/25 21ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
222015/10/25
移植前のチェック ターゲット・プラットフォーム
RAM/RAM 容量( ROM 不足は RAM で代用可能)
CPU アーキテクチャ (Cortex-M4 or NOT) 最低メモリ目安
RAM 256KB / ROM 512KB (Thumb2 命令 ) コンパイラとデバッガ
Windows 上で動作するクロスコンパイラ Windows 上で動作する JTAG-ICE デバッガ
Native 実装 vs. “OS on OS” 実装 ターゲット・プラットフォームの適正ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
232015/10/25
移植に必要な知識 組み込みシステム全般
割り込み処理 , 割り込み Vector, Cache, MMU, PLL ブートローダ
移植対象の CPU, ターゲット・ボード データシート , 回路図 , メモリマップ , クロック
ツール Toolchain (コンパイラ , アセンブラ , リンカ , ライブラリ
アン)C, C++, CPU のアセンブラ命令 , コマンドプロンプト , VB Script
デバッガ , JTAG ICE, Eclipse, OpenOCD+GDB OS アーキテクチャとリソース管理
メモリ , タイマ , 割り込み , イベント .NET Framework と CLR
ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
242015/10/25
V4.4 ソフトウェア環境とツール Visual Studio 2015 (Express 版不可 , Community 版可 ) .NET Micro Framework 4.4 SDK ( バイナリインストーラ
配布 ) .NET Micro Framework 4.4 Porting Kit (GitHub) クロスコンパイラ , デバッガ
推奨は ARM RVDS, KEIL MDK gcc は Launchpad GCC ARM Embedded 4_9 以降
一部スクリプト(環境変数)に不具合がある場合も…
クロス開発統合環境 Eclipse ( 自分で作る必要… )
ソースコード管理 7zip, WinMerge, VSS, svn, … ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
252015/10/25
ハードウェア環境とツール STM32系を使えばほぼ問題ない
STM32 F4 DISCOVERY は OpenOCD 対応オンボード・デバッガ搭載(他の STM32もデバッグ可能)
そうでない場合 JTAG ICE, または OpenOCD ICE 対応 CPU やボード構成をよく確認する Flash ROM書き込みツール(必要に応じて) ブートローダ開発環境(必要に応じて)評価ボード(ターゲットが利用できない場合)測定器、信号観測ツール
ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
262015/10/25
移植の主要作業 開発環境構築と基本設計
環境変数設定&クロス開発用ビルドスクリプト作成
メモリ割当て設計& Scatter ファイル設定 Solution の作成 (手作業)
ビルド&デバッグ NativeSample を動作させる
ブートローダ , 初期化処理 (Clock, Cache, MMU, PLL)
ドライバ , PAL IF (Flash ROM ドライバ開発必須 , UART)
TinyCLR の動作 TinyBooter, アプリケーション・ロードとデバッグ IF
ドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
272015/10/25
InterOp の実装 NETMF 標準 API に無い OS 機能を
アプリケーションから呼び出す 使用方法
標準 API に無いドライバの実装 例: USB Host ドライバ , Flash ROM管理 ,
クリティカルな処理を C またはアセンブラで記述してアプリケーションから呼び出す
実装方法 C# で API を記述、コードを C/C++/ アセンブラで記述 パラメータ、リターン値、非同期処理、イベントが利
用可能 ドット NETまいくろバンザイ倶楽部
OS 移植の醍醐味
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
282015/10/25 ドット NETまいくろバンザイ倶楽部
ビルド & デバッグ NativeSample
Native Code での” Hello world” 表示出力 ビルド環境の検証(自由にカスタマイズ可能) ドライバ類の初期化 & 動作の検証
TinyCLR .NET Micro Framework の移植対象・本体 実行には IL (コンパイル済アセンブリ)が必須
Product\Sample ディレクトリ( HelloWorld, Network など)
TinyBooter NETMF 純正ブートローダ( MFDepoy IF )
• メモリ管理• 割り込み• タイマー• 232C/USB
ドライバ
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
292015/10/25 ドット NETまいくろバンザイ倶楽部
LLILUM
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
302015/10/25
LLILUM とは? NETMF と同じ開発者が開発している 組込みアプリケーション実行環境
Visual C# で開発した UWP (NETMF)互換の IL をLLVMベースの .NET コンパイラでコンパイル後mbed アプリケーション (.bin を作成 ) 実行
Visual Studio で gdb デバッグ 豊富なサービスとクラスライブラリを標準装備 オープンソース・ライセンスで公開 (Apache
V2) 開発環境 /SDK のビルド手順が大変!
x64, VS2015, LLVM 3.7.0, ARM GCC, Make, CMake, Python 2.7.4MIEngine, Visual Studio Extensibility Tools, …. まだまだほかにもドット NETまいくろバンザイ倶楽部
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
対応ボード NXP LPC1768 512KB/64KB (mbed)
Freescale FRDM-K64F 1MB/256KB (mbed)
2015/10/25 ドット NETまいくろバンザイ倶楽部 31
オープンソースカンファレンス 2015 Tokyo/Fall
ドット NETまいくろバンザイ
322015/10/25
まとめ
.NET Micro Framework とは?
新プラットフォームへの移植と V4.4 リリース
最新情報 , LLILUM
ドット NETまいくろバンザイ倶楽部