Submit Search
Upload
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
•
Download as PPT, PDF
•
0 likes
•
784 views
K
Kazuhiro Takahashi
Follow
2015.3.13 名古屋工業研究所で行われる ソフトウェア講演会のスライドです
Read less
Read more
Engineering
Slideshow view
Report
Share
Slideshow view
Report
Share
1 of 27
Download now
Recommended
Tokyo Motion Control Network 技術WG
Tokyo Motion Control Network 技術WG
Akira Hatsune
.net micro framework for toppers
.net micro framework for toppers
Kiyoshi Ogawa
多分怖くない, Androidとハードウェア
多分怖くない, Androidとハードウェア
Yoshihiro Kobayashi
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
openrtm
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)
openrtm
Python toolforvsをインストールをしてみる
Python toolforvsをインストールをしてみる
Shigeo Ueda
C#/Java & Linux で始める ET ロボコン
C#/Java & Linux で始める ET ロボコン
Shin-ya Koga
ETロボコンのすすめ
ETロボコンのすすめ
Hiroyuki Takahashi
Recommended
Tokyo Motion Control Network 技術WG
Tokyo Motion Control Network 技術WG
Akira Hatsune
.net micro framework for toppers
.net micro framework for toppers
Kiyoshi Ogawa
多分怖くない, Androidとハードウェア
多分怖くない, Androidとハードウェア
Yoshihiro Kobayashi
Robomec2014 rtm講習会第1部(その1)
Robomec2014 rtm講習会第1部(その1)
openrtm
Robomec2014 rtm講習会第1部(その2)
Robomec2014 rtm講習会第1部(その2)
openrtm
Python toolforvsをインストールをしてみる
Python toolforvsをインストールをしてみる
Shigeo Ueda
C#/Java & Linux で始める ET ロボコン
C#/Java & Linux で始める ET ロボコン
Shin-ya Koga
ETロボコンのすすめ
ETロボコンのすすめ
Hiroyuki Takahashi
G7プレゼンrtos自作
G7プレゼンrtos自作
Kazuhiro Takahashi
Gr sakuraでtinet
Gr sakuraでtinet
Kazuhiro Takahashi
G7プレゼンrtos自作
G7プレゼンrtos自作
Kazuhiro Takahashi
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズ
Kazuhiro Takahashi
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
Kazuhiro Takahashi
mrubyOSチラシ
mrubyOSチラシ
Kazuhiro Takahashi
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Kazuhiro Takahashi
Rx hew-シミュレータで動かすー説明書
Rx hew-シミュレータで動かすー説明書
Kazuhiro Takahashi
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Kazuhiro Takahashi
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Kazuhiro Takahashi
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都
Takuya Azumi
Toppers Project 3 major events.
Toppers Project 3 major events.
Kiyoshi Ogawa
Osc tokyo20141019
Osc tokyo20141019
Kiyoshi Ogawa
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
Center for Embedded Computing Systems, Nagoya Univ.
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
s15mh218
テンプレート・エンジンVelocity
テンプレート・エンジンVelocity
隆行 神戸
OSC2021 Online Spring TOPPERS
OSC2021 Online Spring TOPPERS
Hiroaki Nagashima
Osc2017 nagoya
Osc2017 nagoya
naoki okayama
TOPPERSプロジェクトの紹介 OSC2018 Nagoya
TOPPERSプロジェクトの紹介 OSC2018 Nagoya
yasuo kominami
Osc tokyo20141019-last
Osc tokyo20141019-last
Kiyoshi Ogawa
MacでTensorFlow on Dockerを 使って見る
MacでTensorFlow on Dockerを 使って見る
Hiroyuki Yoshida
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
More Related Content
Viewers also liked
G7プレゼンrtos自作
G7プレゼンrtos自作
Kazuhiro Takahashi
Gr sakuraでtinet
Gr sakuraでtinet
Kazuhiro Takahashi
G7プレゼンrtos自作
G7プレゼンrtos自作
Kazuhiro Takahashi
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズ
Kazuhiro Takahashi
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
Kazuhiro Takahashi
mrubyOSチラシ
mrubyOSチラシ
Kazuhiro Takahashi
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Kazuhiro Takahashi
Rx hew-シミュレータで動かすー説明書
Rx hew-シミュレータで動かすー説明書
Kazuhiro Takahashi
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Kazuhiro Takahashi
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Kazuhiro Takahashi
Viewers also liked
(10)
G7プレゼンrtos自作
G7プレゼンrtos自作
Gr sakuraでtinet
Gr sakuraでtinet
G7プレゼンrtos自作
G7プレゼンrtos自作
リアルタイムOsのカスタマイズ
リアルタイムOsのカスタマイズ
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
Gr sakuraで動く mrubyスマホリモコンカー(タミヤ製ラジコン改造)
mrubyOSチラシ
mrubyOSチラシ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Toppers sspを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ
Rx hew-シミュレータで動かすー説明書
Rx hew-シミュレータで動かすー説明書
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi 用 toppers ssp シュリンク版(海賊版)の紹介
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Raspberry pi で スマホリモコンでラジコンカーを動かすさっと動かす編
Similar to TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都
Takuya Azumi
Toppers Project 3 major events.
Toppers Project 3 major events.
Kiyoshi Ogawa
Osc tokyo20141019
Osc tokyo20141019
Kiyoshi Ogawa
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
Center for Embedded Computing Systems, Nagoya Univ.
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
s15mh218
テンプレート・エンジンVelocity
テンプレート・エンジンVelocity
隆行 神戸
OSC2021 Online Spring TOPPERS
OSC2021 Online Spring TOPPERS
Hiroaki Nagashima
Osc2017 nagoya
Osc2017 nagoya
naoki okayama
TOPPERSプロジェクトの紹介 OSC2018 Nagoya
TOPPERSプロジェクトの紹介 OSC2018 Nagoya
yasuo kominami
Osc tokyo20141019-last
Osc tokyo20141019-last
Kiyoshi Ogawa
MacでTensorFlow on Dockerを 使って見る
MacでTensorFlow on Dockerを 使って見る
Hiroyuki Yoshida
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
Atsuhiro Kubo
Realizling Dapr Observability Using Elastic Stack
Realizling Dapr Observability Using Elastic Stack
Shotaro Suzuki
グローバル企業の中で「変化」を仕掛ける楽天技術研究所 Rakuten Institute of Technology の挑戦
グローバル企業の中で「変化」を仕掛ける楽天技術研究所 Rakuten Institute of Technology の挑戦
Rakuten Group, Inc.
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み
Recruit Technologies
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
CASAREAL, Inc.
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
株式会社 オープンソース・ワークショップ
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
株式会社 オープンソース・ワークショップ
Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour Tokyo
Takao Tetsuro
Similar to TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
(20)
TOPPERSプロジェクト紹介 OSC2016京都
TOPPERSプロジェクト紹介 OSC2016京都
Toppers Project 3 major events.
Toppers Project 3 major events.
Osc tokyo20141019
Osc tokyo20141019
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
Web IDE Gitpodを使ってTOPPES OSを体験してみよう
Portable RT-Middleware environment on a USB memory for the robot programing ...
Portable RT-Middleware environment on a USB memory for the robot programing ...
テンプレート・エンジンVelocity
テンプレート・エンジンVelocity
OSC2021 Online Spring TOPPERS
OSC2021 Online Spring TOPPERS
Osc2017 nagoya
Osc2017 nagoya
TOPPERSプロジェクトの紹介 OSC2018 Nagoya
TOPPERSプロジェクトの紹介 OSC2018 Nagoya
Osc tokyo20141019-last
Osc tokyo20141019-last
MacでTensorFlow on Dockerを 使って見る
MacでTensorFlow on Dockerを 使って見る
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
Realizling Dapr Observability Using Elastic Stack
Realizling Dapr Observability Using Elastic Stack
グローバル企業の中で「変化」を仕掛ける楽天技術研究所 Rakuten Institute of Technology の挑戦
グローバル企業の中で「変化」を仕掛ける楽天技術研究所 Rakuten Institute of Technology の挑戦
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み
[関東Firefox OS 勉強会10th 講演資料] リクルートにおけるFirefox osアプリへの取り組み
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
日立ソリューションズの取り組みとプラットフォーム関連セション内容のご紹介
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
ドローンをプログラミングして飛ばす!Scratch、PHP、Python、映像のプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
2019年9月15日 OSC広島 ドローンをプログラミングして飛ばす!ScratchとPHPでプログラミング授業
Small Language Model Local Launch on AI Tour Tokyo
Small Language Model Local Launch on AI Tour Tokyo
TOPPERS/SSPを用いた教育訓練カリキュラムカーネルの自作およびカスタマイズ @ソフトウェア講演会名古屋
1.
TOPPERS/SSP を用いた教育訓練カ リキュラムカーネルの自作およびカ スタマイズ アライブビジョンソフトウェア株式会社 高橋和浩 https://www.facebook.com/firstandlastandallways TOPPERS プロジェクト 特別会員(個人)
アイデアアプリケーションコンテスト アイデア部門 入賞
2.
バックグランド(それまでの経緯) ルネサスエレクトロニクスの RTOS(μITRON カーネル
) のおよそ 8 年 ほど受託開発。 M32C M16C R32C RX など ポリテクセンター兵庫にて、在職者向け コース( μITRON) を担当 (H24 より実 施)
3.
動機 ITRON を使うセミナから作るセミナにし たい
受講生からの要望 オープンソースの OS を使う以上、中身の 理解の必要性 入り口として、もっとも手軽なもの 最少 セットカーネル Linux のカーネルに読破にくじけた人にも OS 自作本などのニーズ
4.
μITRON (RTOS)の講習会 ポリテクセンター兵庫(武庫之荘)で実施 ・
μITRON 基本 ・ μITRON ネットワーク ・新講習 RTOS自作とカスタマイズ(本 年1月実施) いずれも土曜日 3 日間 H27 年度ももちろんあります
5.
RTOS 自作講習会の概要 標準
ITRON ガイドブック(作り方の章) 特に専門用語の解説をしっかり TOPPERS/SSP( オープンソース μITRON) を ベース(シュリンク版というものを利用) ボードで実際に演習を交えて実施(雑誌付録ボー ド RX62n)+E1 デバッガ ソースコードをステップベースで解説していきま す。 (SSP は省ステップなので可能) SSP 本来の機能からカーネル機能拡張(待ち状態 を追加)作業を演習実施。 dly_tsk を実装してい きます。
6.
講習のサンプル ソースコード解説の例 カーネル拡張の例
7.
カーネルコード解説 sta_ker() から始まる。
マルチタスクになる前段 階の処理 ブート一回目だけの処理 としてカーネルオブジェ クトの生成がある。 SSP はカーネルオブジェ クトといってもタスクの み TCB の初期設定をする。 最後にディスパッチャを 呼ぶ void sta_ker(void) { initialize_object(); kerflg = true; intnest = 0; dispatcher(); }
8.
カーネルコード解説 2 ディスパッチャ部分
これは、途中で待ちになら ない SSP 特有のディスパ ッチ処理。 優先度の高いタスクにプリ エンプトはするが、待ち状 態にはならないから、タス クの高いタスクが終了して から低いタスクの起動はこ ういう単純な呼び出しでよ い。 さらに SSP はスタック共 有型なのでスタックを切り 替える必要はない。
9.
カーネルコード解説 3 スケジューラは、今の レディーキューから、 次にディスパッチする タスクを選ぶ処理。
レディーキューの構造 に依存するが、 SSP は 単純なビットマップの み uint_t search_schedtsk(void) { return primap_search(); }
10.
カーネルコード解説 4 ER act_tsk(ID tskid) { ER
ercd; uint_t tskpri; LOG_ACT_TSK_ENTER(tskid); CHECK_TSKCTX_UNL(); CHECK_TSKID_SELF(tskid); tskpri = get_ipri_self(tskid); t_lock_cpu(); if (test_dormant(tskpri)) { if(make_active(tskpri)) { run_task(tskpri); } ercd = E_OK; } else { ercd = E_QOVR; } t_unlock_cpu(); error_exit: LOG_ACT_TSK_LEAVE(ercd); return(ercd); }
11.
カーネルコード解説 5 最後は、ユーザーからの
OS 呼び出しである。 タスクの起動で、基本はまずレディーキューに指 定したタスクの TCB をキューイングする カーネルの最後(遅延ディスパッチで)今の最優 先タスクを動かす。 SSP は単純にサブルーチンコールしかしていない ので、 タスクは常に頭から動くが、プリエンプトされて 復帰するケースは 自タスクよりも高いタスクを起動した場合。 起動されたタスクが終了した時点で、タスク起動 後に戻ればいいのでサブルーチンコールするのと 同じ作りで実現している
12.
タスクスイッチの例 ( 追加ペー ジ)
タスク 2 が RUN 中に、 act_tsk() でタス ク 1 を起動 タスク 1 が優先度が高い場合 タスク 1 がサブルーチンコールされる動き タスク2 中断 実行 タスク1 時間 act_tsk(task1) 呼び出し
13.
移植対応部 アセンブリ言語
14.
割込み時のタスクスイッチの例(追加ペ ージ) Task2 が
RUN 中に割り込みが発生 割込みハンドラで iact_tsk(task1) を呼び 出 Task1 が優先度高い 0 1 2 3 4 5 割り込み処理 Task2 割り込み発生 Task1 時間 Copyright (C) Reserved 2010 Embedded Systems Co., 割り込み発生 iact_tsk(task1) Running Ready Dormant
15.
カーネル (RTOS) 仕様
16.
シュリンク版 SourceForge に公開
http://sourceforge.jp/projects/shrink-sp-rx62n/ 本物との違い 割込みベクターの登録およびスタートアップの削 除 OS なし環境を流用 なぜ作ったか? SSP カーネルの簡潔な処理に比較して割り込みベ クタ関係の処理の難度が高く、コード量も多い。 カーネルを学ぶために必要な部分だけ残した。そ れで動くことが必要と考えた
17.
TOPPERS/SSP のカスタマイズ フル改造編
(1)待ち状態を持つカーネルの設計 (2)実装 イ.コンテキストの保存と復元 ロ.サービスコール部の作成 (3) dly_tsk の追加 イ.実装に必要な項目の整理 ロ.指定時間待ちの実装 (dly_tsk) (4)評価・改善 イ.制作したカーネルを用いる際の問題点の把握 ロ.問題点の改善
18.
(1)待ち状態を持つカーネルの設計 待ちを持つということは タスクが
run --> wait --> dormant wait --> ready 中断したところから再開しなければならな い。
19.
コンテキストの保存と復元 1. コンテキストの保存エリアを検討する。
2. コンテキストからタスクが復帰する仕組 みでのタスク起動部を実装する 3. タスクスイッチする場合にコンテキスト の保存と復帰をします。 タスクがスイッチするときにコンテキスト を保存 / 復帰するように実装する。
20.
longjmp/setjmp の利用 コンテキストの保存領域を渡して
call すれば、そ こに保存される。 割込みには対応できないので工夫が必要 シュリンク版の移植性を考慮して C でできるだけ 実装
21.
longjmp/setjmp の限界 RTOS
のコンテキスト保存 は、 longjmp/setjmp だけでは、すべて の場合に対応できません。 少なくとも戻り値が、 R1 レジスタが保存 されないことがある。 割り込みには対応できない 割り込み部でレジスタ保存 / 復帰を補完す る必要がある。
22.
Longjmp/setjmp の考え方 Setjmp
はコンパイラが把握 OS 呼び出しの場合は、 setjmp を使い、これ はコンパイラが把握できる。 Setjmp から戻る場 合は、レジスタ一式が復帰して jmp してくるが 保存を必要としない一部のレジスタを壊しても続 行できる。 割込みはコンパイラが把握できない 割り込みの場合はコンパイラが把握していない ため、どこでどのレジスタを壊していいというこ とがなくなる。
23.
今後の展開 ポリテクセミナーの内容(プラットフォー ム)の見直し SSP
シュリンク版の拡張
24.
セミナのプラットフォーム
25.
シュリンク版のこれから ハード依存部が少ないことから移植がしや すいはず raspberry
pi に移植しました (baremetal 環境) http://www.slideshare.net/alvstakahash i/raspberry-pi-toppers-ssp
26.
シュリンク版の展望
27.
ありがとうございました ポリテクセンター兵庫 在職者研修 http://www3.jeed.or.jp/hyogo/poly/contents/holding/index.html 正式名称 独立行政法人高齢・障害・求職者雇用支援機構 兵庫職業訓練支援センター 兵庫職業能力開発促進センター アライブビジョンソフトウエア株式会社 http://homepage3.nifty.com/ALVS/
Facebook https://www.facebook.com/firstandlastandallways ありがとうございました
Download now