net micro framework for toppers

40
MS .NET micro FrameWork と TOPPERS ととととと とととととととととと ととととととととと とととと ととと ととととと () ととと TOPPERS とととととととと とととととと .NET と Microsoft ととととTOPPERS と TOPPERS ととととととととととととと

Upload: kiyoshi-ogawa

Post on 28-May-2015

427 views

Category:

Technology


6 download

DESCRIPTION

About .net micro framework for toppers by Kiyoshi Ogawa, original Idea from Atom Hidaka.

TRANSCRIPT

Page 1: net micro framework for toppers

MS .NET micro FrameWork と TOPPERS を利用したアーキテクト人材育成

名古屋市工業研究所工学博士・技術士(情報工学)小川清

TOPPERSプロジェクトマスコットとばめ

.NET は Microsoft 社の商標、TOPPERS は TOPPERS プロジェクトの登録商標です。

Page 2: net micro framework for toppers

構成序章1 章オープンソース2 章アーキテクト3 章 TOPPERS アーキテクチャ4 章 .NET micro framwork との連携まとめと今後の課題

Page 3: net micro framework for toppers

今朝の日経新聞1面MJ2013 ヒット商品番付西前頭 式年遷宮

◦20 年ごと内宮・外宮を造替

1953 年(昭和 28 年)第 59 回内宮式年遷宮Wikipedia 「神宮式年遷宮」

技術にとっての式年遷宮? 同じアーキテクチャを復元? 同じアーキテクトを復元

Page 4: net micro framework for toppers

序章 TOPPERS と .NET micro FW

自己紹介今日の目標TOPPERS プロジェクト登場人物背景経緯

Page 5: net micro framework for toppers

自己紹介名古屋市工業研究所勤務TOPPERS プロジェクト理

Page 6: net micro framework for toppers

関連活動岐阜大学非常勤講師SESSAME/MISRA-C 研究会 2012 準

備会情報処理推進機構 推進委員情報処理学会情報規格調査会

SC7WG10,20,24 委員Proof Café / TAPL 勉強会参加者

Page 7: net micro framework for toppers

今日の目標オープンソースのアーキテクト像TOPPERS の次の 10 年の道.NET FrameWork に学ぶ組込のアーキ

テクチャを考える◦C# 技術者に組込への道を

.NET micro FrameWork と TOPPERSを連携する活動

Page 8: net micro framework for toppers

TOPPERS プロジェクトToyohashi OPen Platform for

Embedded Real-time Systems, http://www.toppers.jp

オープンソースソフトウェア◦多くの CPU と数々のコンパイラで動作

ITRON 仕様の技術開発成果を出発点◦ISO OSEK/AUTOSAR 仕様…◦コンポーネント、通信ミドルウェア、テストス

イート教育コース、教材の開発、教育の場2003 年 9 月設立

Page 9: net micro framework for toppers

TOPPERS アプリケーション開発・アイデアコンテスト 2013

アプリケーション開発部門◦ 銀賞: TOPPERS Realtime System Sample ( RSS )

LPCXpresso GPS Clock 中村晋一郎◦ 銅賞: Toppers_JSP と Scicos_lab による組込みメカト

ロニクス制御シミュレーション 塩出武◦ 銅賞: lwIP の移植 松浦光洋

活用アイデア部門◦ 銀賞: .NET micro FrameWork for TOPPERS 株式会

社デバイスドライバーズ 日高亜友◦ 銅賞: uIP による WEB サーバの開発 今西孝也(高知

県工業技術センター)

Page 10: net micro framework for toppers

背景名古屋市工業研究所でソフ

トウェアについて約 30 年取り組んで来た成果をまとめ、次の世代に引き継ぐ◦MS-DOS 版 VZ エディタ◦C言語、 C++言語の部分集合 (MISRA-C)

TOPPERS プロジェクトが10 年経った。次の 10 年に何をするとよいか。

Page 11: net micro framework for toppers

プログラミング言語経緯電総研の研究生OBJ シンタックスチェッカ作成C言語教育

◦C コンパイラ作成を題材◦The C Puzzle Book()

MISRA-C の解説書作成 , 1998 年版、 2004 年版日本規格協会から発行。 2012 年版検討中◦C言語の部分集合は Pascal, C# と同等?

Event-B, Uppaal, SPIN のセミナ実施Coq の勉強会 Proof Café 参加 , TAPL 勉強会参加

Page 12: net micro framework for toppers

MISRA-C自動車向け静的解析可能 関数プログラミングに近い、副作用による値・制御の変更がな 異なるCPUでも同じ動作をする

プログラム例をTOPPERS/jpsタスク/関数に記述。クロスコンパイルし、対象ボードで実行、処理確認

◦ 1998年初版,2004年第二版,2012年第三版◦ Directori1.1:2012プログラムの出力が依存しているあらゆる処理系定義の動作を文書化し,理解しなければならない。

◦ 規則1.3:2004未定義又は重大な未規定の動作が発生してはならない。

◦ Directyory4.8:2004構造体または共用体へのポインタがコンパイル単位内で逆参照していない場合,オブジェクトの実装を隠蔽するとよい。

Page 13: net micro framework for toppers

//misrac.h #ifndef MISRAC_H #define MISRAC_H // Dir.4.8 typedef struct OpaqueType * pOpaqueType; struct OpaqueType { //Object implementation }; #endif

//Dir.4.8.c #include "misrac.h”

void f (void) { pOpaqueType pObject; pObject * GetObject(); //Get a handle to an

OpaqueType object UseObject { pObject); // Use it... }

Dir 4.8

Page 14: net micro framework for toppers

TOPPERS プロジェクト参加経緯MINIX の PC-98 への移植マニュアルの作成斉藤直希が小さい電子機器に興味を持ち、共通認識

として ITRON系の知見を求めて当時豊橋技科大学にいた高田広章さんを訪問

カーネルソース勉強会参加◦SH3 の初期化、コンパイラ理解等が副産物

宮城県から技術者が来ていることを紹介を受け、(株)ヴィッツとともにオープンソースのTOPPERS/jsp の展開参加

オープンソースの OSEK 開発参加機能安全対応車載プラット フォームプロジェクトに参加TOPPERS/ssp の開発

Page 15: net micro framework for toppers

.NET micro FrameWork 経緯

CQ 出版の付録基板に関本 健太郎さんが移植した .NET micro FrameWork をどう使うかの演習付きセミナを 2013 年 6 月松浦光洋さんを講師に名古屋市工業研究所で開催

SWEST で松浦光洋さんを講師に .NET micro FrameWork のセミナ

ET ロボコンで太田さんと審査員席で歓談OSC東京 2013/fall で日高亜友さんと情報交換ET2013 TOPPERSブースで関本健太郎さんと情

報交換来年、 .NET FrameWork と .NET micro

Frmework についての演習付きセミナを企画中

Page 16: net micro framework for toppers

1 章オープンソースオープンソースを利用した人材育成オープンソースにおける人材育成の課題オープンソースの協調: TOPPERS 関連.NET micro FrameWork for TOPPERS

Page 17: net micro framework for toppers

オープンソースを利用した人材育成高度組込中核人材プロジェクト名古屋市工業研究所実施事業MISRA-C:1998, MISRA-C:2004,

MISRA-C++◦プログラム例を TOPPERS/jps タスクに記述。クロスコンパイルし、対象ボードで実行、処理確認

TOPPERS の会員企業に Automotive SPICE等で作業診断。作業の改善および作業診断の改善取組。

Page 18: net micro framework for toppers

オープンソースにおける人材育成の課題Gcc を仕事で使っていないと、クロ

スコンパイラのコンパイルができない仕事で使っている環境で教育したいアナログ処理からデジタル処理まで綜合的に教育したい

アーキテクトをどう継承するか

Page 19: net micro framework for toppers

オープンソースの協調TOPPERS 関連

邑中雅樹さんが TOPPERSなどを GCCでクロスコンパイル、リモートデバッグできるクロス開発環境 Pizza Factory 開発

mruby と TOPPERS/TECS-WG( 名古屋)共同で会合、開発

TOPPERS プロジェクト OSC2012受賞TOPPERS アプリケーション開発アイデ

アコンテストに日高亜友さん . .NET micro FrameWork for TOPPERSが銀賞

Page 20: net micro framework for toppers

.NET micro FrameWork for TOPPERS

© 日高亜友

Page 21: net micro framework for toppers

2 章アーキテクト建築におけるアーキテクチャソフトウェアアーキテクチャマイクロソフト .NET FrameWork

アプリケーションアーキテクチャガイド 2.0

Page 22: net micro framework for toppers

アーキテクトアーキテクトは、アーキテクチャを考え、

設計する人。◦アーキテクチャは、建築における構造設計。◦ソフトウェアは、構造化プログラミング、抜

き差し可能部品で構造設計。式年遷宮のように同じものを作る場合でも、解体して再組み立てするのに必要な技術、手順がないと組たたらない

Page 23: net micro framework for toppers

建築におけるアーキテクチャ共通部分

◦雨風、日照を除ける。◦生活基盤:温度を保つ。水・ガス・電気・通信。◦火災、地震に強い

個別対応◦出入りのしやすさ、内外からの出入り禁止:壁

◦内部空間の大きさ:工場・倉庫、住宅・学校

Page 24: net micro framework for toppers

ソフトウェアアーキテクチャ共通部分

◦時間:処理時間、通信時間◦空間:利用可能なメモリ、外部記憶◦論理的正確性◦再利用、変換可能性

個別◦サーバ・ホスト、センサ、クライアント◦書きやすさ、読みやすさ◦アナログ処理の模擬

Page 25: net micro framework for toppers

マイクロソフト .NET FrameWorkアプリケーションアーキテクチャガイド 2.0

http://www.microsoft.com/ja-jp/dev/2010/solutions/architecture/default.aspx

ハードウェア、ソフトウェアの進化に対応できる

機能要件と品質要件再利用性と保守容易性

◦サービス指向◦ユーザ経験の

© MS .NETFW AAG

Page 26: net micro framework for toppers

アーキテクトとして必要な事どのような仮説を立てましたか。明示的または黙示的な要件は何ですか。主なリスクは何ですか。リスクを軽減するために講じている対策は何ですか。

© MS .NETFW AAG

Page 27: net micro framework for toppers

アーキテクチャ設計が不十分だと起こる事動作が不安定

◦処理時間のばらつき運用環境での配置が困難

◦資源不足管理が困難

© MS .NETFW AAG

Page 28: net micro framework for toppers

二律背反機能を追加すると、時間・空間を消費

する。空間を節約するために時間を使う手法、時間を節約するために空間を使う手法がある。◦処理・データを切替えて読み込む◦時間のかかる演算の結果を表で持つ

Page 29: net micro framework for toppers

第 3 章 TOPPERSS のアーキテクチャ統合仕様書仮説、要件、リスクTOPPERS リスク軽減策TECS ( TOPPERS Embedded

Component System )

Page 30: net micro framework for toppers

TOPPERS アーキテクチャ統合仕様書

過去の資産の継承再利用性アプリケーションプログラムに問題がある場合合理的な負担増で救済◦リスク軽減 次表

Page 31: net micro framework for toppers

TOPPERSS のアーキテクチャ仮説:割り込み処理モデル要件: 16/32/64bitCPU 、C言語、ログ出力リスク:時間遅れ、空間逸脱

Page 32: net micro framework for toppers

TOPPERS リスク軽減策種類 リスク軽減策1.ASP カーネル 割り込み処理モデル対応2.HRP カーネル メモリ保護機能の追加  オブジェクトアクセス保護機能の追加  ミューテックス機能の追加  オーバランハンドラ機能の追加3.FMP カーネル資源確保(マルチコア)4.PARK カーネル サービス・システム (OS)状態・時間保護5. SSP カーネル複雑さ、空間小6 ATK2 カーネル 自動車用7. TECS 静的8. TTSP 試験9. MISRA-C対応 空間

Page 33: net micro framework for toppers

TOPPERSS アーキテクチャTECS ( TOPPERS Embedded Component System )仕様

静的生成と結合◦ 事前配置決定可能

初期化時間短縮粒度の小さいコンポー

ネントTECS ジェネレータmruby on asp+tecs:

mruby VM を TECS コンポーネント化

TOPPERS/ASP+TECS:ET ロボコンプラットフォーム

Page 34: net micro framework for toppers

第4章 .NET FrameWork/.NET micro FrameWork との連携

連携の前提.NET micro FrameWork にとって

TOPPERS のよいとこ

Page 35: net micro framework for toppers

.NET FrameWork/.NET micro FrameWork との連携の前提

.NET FrameWork でそだった技術者に .NET micro FrameWork を利用してもらうのに必要なこと

マイクロソフト .NET FrameWorkアプリケーションアーキテクチャガイド2.0 のまとめ方で TOPPERSもまとめる

.NET micro FrameWork と TOPPERSの同時構築

Page 36: net micro framework for toppers

.NET micro FrameWork にとってTOPPERS のよいとこ

多くの CPU の移植があり、同等な初期化を比較可( ASP の例 )◦V850, H8, SH1/2A/3/4, ARM,Cortex-M3,

RX, microBlaze,M16C/32C, M32R, Nios Cortex-M3 は Startup.c は ASP, SSPほぼ同一

いくつかのコンパイラに対応 (ASP の例 )◦GCC, HEW, NC30(8), RXC, Visual

Studio.

Page 37: net micro framework for toppers

まとめと今後の展望オープンソースにおける人材育成の課題今後の展望

Page 38: net micro framework for toppers

オープンソースにおける人材育成の課題

Gcc を仕事で使っていないと、クロスコンパイラのコンパイルができない◦ −>Pizza Factory を使う

仕事で使っている環境で教育したい◦ −> .NET micro FrameWork は Visual Studio で動く

アナログ処理からデジタル処理まで綜合的に教育したい◦ −>Toppers_JSP と Scicos_lab による組込みメカトロニクス制御

シミュレーション(塩出武) アーキテクトをどう継承するか

◦ −>TOPPERS Realtime System Sample ( RSS ) LPCXpresso GPS Clock (中村晋一郎)

◦ −> lwIP( 松浦光洋 )◦ −>NET micro FrameWork for TOPPERS (日高亜友)◦ −>uIP による WEB サーバの開発(今西孝也)

Page 39: net micro framework for toppers

今後の展望オープンソース技術者技能を学び網を広げる

◦ ソフトウェアのアーキテクチャを考える◦ アーキテクトを育てる上でのオープンソースの重要性

を確認.NET micro FrameWork と TOPPERS の連携で

TOPPERS プロジェクトの次の 10 年によい影響を与えたい◦TOPPERS のソースを参考に .NET micro FrameWork

の移植。MISRA-C の延長線上に C# のコーディング標準

への貢献、証明駆動、関数プログラミングを

Page 40: net micro framework for toppers

参考文献http

://www.cs.ubc.ca/%7Egregor/teaching/papers/4+1view-architecture.pdf

かこさとし ,あなたのいえわたしのいえ ,かがくのとも傑作集 , 福音館書店 ,1969