• 検索結果がありません。

Slide

N/A
N/A
Protected

Academic year: 2021

シェア "Slide"

Copied!
35
0
0

読み込み中.... (全文を見る)

全文

(1)

Arduinoでの

での

組込み

組込み

OS

自作体験

自作体験

坂井弘亮

坂井弘亮

(KOZOSプロジェクト

プロジェクト

)

TwitterID:kozossakai

(2)

まず最初に連絡

まず最初に連絡

事務局側で用意している 事務局側で用意しているUSBメモリがありますメモリがあります 「 「FreeBSD-avr-kozos.ova」という」 というOVAファイファイ ル が入っているので,これからの説明時間中に ル が入っているので,これからの説明時間中に 自分の 自分のPCにコピーしてくださいにコピーしてください (1GB程度あるので,コピーに時間がかかります程度あるので,コピーに時間がかかります) ネットからダウンロード済みのひ とは 不要です ネットからダウンロード済みのひ とは 不要です VMはインストールしてありますか?は インストール してありますか? (そうでないそうでな い ひ とは 演習の合間にインストール してください ひ とは 演習の合間にインストール してください)

(3)

自己紹介

自己紹介

趣味で組込みOSを作っています

趣味で組込みOSを作っています

(KOZOS)

セキュリティキャンプの講師をやっています

セキュリティキャンプの講師をやっています

オープンソースカンファレンスなどのイベントに

オープンソースカンファレンスなどのイベントに

出展しています

出展しています

たまに勉強会とかもやっています

たまに勉強会とかもやっています

本を何冊か書いています

本を何冊か書いています

(12ステップで作る

ステップで作る

組込み

組込み

OS自作入門

自作入門

)

(4)

他にも最近は,こんなのを作ったりしてます

他にも最近は,こんなのを作ったりしてます

バイナリかるたとアセンブラ短歌

バイナリかるたとアセンブラ短歌

(5)

他にも最近は,こんなのを作ったりしてます

他にも最近は,こんなのを作ったりしてます

バイナリカレンダー

(6)

本日やること

本日やること

「 「Arduino」というマイコンボードを対象にして」 というマイコンボードを対象にして マイコンのプログラミング体験をしてみましょう マイコンのプログラミング体験をしてみましょう 「 組込みOS」 というものに触れてみましょう 「 組込みOS」 というものに触れてみましょう

(7)

「組込み機器」とは何か

「組込み機器」とは何か

こういうのを「組込み機器」と言います

こういうのを「組込み機器」と言います

(8)

「 組込み シ ステム」 と か言いま す

「 組込み シ ステム」 と か言いま す

英語だと「 英語だと「Embedded System」です」 です カタカナで「 エンベ デッド」 とも書きます カタカナで「 エンベ デッド」 とも書きます 内部で動いているソフトウェアは 「 組込みソフト 内部で動いているソフトウェアは 「 組込みソフト ウェア」 と言います ウェア」 と言います 内部で動いている 内部で動いているOSは「組込みは 「 組込みOS」と言いま」 と言いま す す (無い場合もある無い場合もある)

(9)

身の 回り の 組込み 機器を 考えて み よう

身の 回り の 組込み 機器を 考えて み よう

今日ここに来るまでに見た「 組込み機器」 を5 今日ここに来るまでに見た「 組込み機器」 を5 つ,あげ てみよう! つ,あげ てみよう! (勘で良いです勘で良いです)

(10)

(ヒント

ヒン ト

)

「 たぶ んこれってマイコンが入っていて,ソフトウェ 「 たぶ んこれってマイコンが入っていて,ソフトウェ ア制御にな っているんじゃな いかな あ」 というもの ア制御にな っているんじゃな いかな あ」 というもの があれば,それは 組込み機器です があれば,それは 組込み機器です やってることは 単純だとしても,たとえば動作速 やってることは 単純だとしても,たとえば動作速 度をチューニングできそうな ものがあれば,それは 度をチューニングできそうな ものがあれば,それは おそらくソフトウェア制御の組込み機器です おそらくソフトウェア制御の組込み機器です 自分の家にあるもの,来る途中に見たもの,学 自分の家にあるもの,来る途中に見たもの,学 校内にあるもの 校内にあるもの

(11)

Arduino

(12)
(13)

本日は

本日は

Arduinoで動くプログラムをいじります

で動くプログラムをいじります

プログラムは サンプル があるので,それを改造し プログラムは サンプル があるので,それを改造し ます ます シミュレータ上で動作させ てみます シミュレータ上で動作させ てみます 実機でも動く 実機でも動く(はずは ず)ので,実機で試したいひとはので,実機で試したいひ とは やってみても やってみてもOKですです 慣れたら次は , 慣れたら次は ,OSを載せてみますを載せ てみます OSを使うメリットは何か?を使うメリットは 何か? を考えてみようを考えてみよう (質問質問)組込み機器で,組込み機器で,OSを使うメリットは何でを使うメリットは 何で しょうか? しょうか? (なぜ必要なの?な ぜ 必要な の?)

(14)

開発環境について

開発環境について

開発には , 開発には ,FreeBSDやLinux系ディストリビュー系ディストリビュー ショ ン ショ ン(Ubuntuなどな ど)などの,な どの, いわゆる「いわゆる「 PC-UNIX」が向いています」 が向いています できることな らこれを機会に,「 できることな らこれを機会に,「PC-UNIX」に慣」 に慣 れてほ しいです れてほ しいです (使っているとかっこいいです使っているとかっこいいです) でも,今回の演習のためだけに でも,今回の演習のためだけにPC-UNIXをPC にインストール するのは たいへ んです にインストール するのは たいへ んです

(15)

ということで

ということで

VMを使います

を使います

VMはPC上で動く,仮想上で動く,仮想PC環境です環境です VM環境の上に環境の上に(Ubuntuなどのな どの)OSをインストーをインストー ル して,ひ とつのウィンドウの中で ル して,ひ とつのウィンドウの中で ひとつのひ とつのPCがが 起動しているような イメージで使うことができます 起動しているような イメージで使うことができます VM上に上にFreeBSDと今回の開発環境をインスと今回の開発環境をインス トール したイメージを,すでに作成してあります トール したイメージを,すでに作成してあります それがさきほ どコピーした「 それがさきほ どコピーした「 FreeBSD-avr-kozos.ova」です」 です

(16)

(17)

では,

では,

VMを起動してみましょう

を起動してみましょう

VMware Player もしくはもしくは VirtualBox を起動しを起動し てください てください OVAファイルを「インポート」してくださいファイル を「 インポート」 してください 配布資料にも説明がありますので,そっちも参 配布資料にも説明がありますので,そっちも参 考にしてください 考にしてください

(18)

インポートできたら,起動してみよう

インポートできたら,起動してみよう

FreeBSDが起動して,ログインプロンプトが出が起動して,ログインプロンプトが出 てきます てきます ログインしてみよう ログインしてみよう (パスワード等は配布資料参パスワード等は 配布資料参 照 照)

(19)

CUIに慣れよう!

に慣れよう!

開発用の様々な ツール 類は , 開発用の様々な ツール 類は ,CUI(キャラクタ・キャラクタ・ ユーザ・インターフェース ユーザ・インターフェース)での操作がベースにでの操作がベ ースに な っているものが多いです な っているものが多いです な ので な のでCUIでの操作に慣れましょうでの操作に慣れましょう CUIは覚えておいて損は無いです.あとは 覚えておいて損は 無いです.あとCUIでガでガ シガシ使えると,かっこいいです シガシ使えると,かっこいいです CUIの操作は,配布資料を参考にしてくださいの操作は ,配布資料を参考にしてください まずは ファイル を作って編集したりしてみよう まずは ファイル を作って編集したりしてみよう

(20)

マイコン で

マイコン で

Hello Worldを動かしてみよう

を 動かし て み よう

「 「Hello World」と出力するだけのプログラム」 と出力するだけのプログラム が,すでに置いてあります が,すでに置いてあります 「 「avr_03-hello/os」というディレクトリに入ってく」 というディレクトリに入ってく ださい ださい main.cなどのファイルがあるので,ソースコードな どのファイル があるので,ソースコード を見てみよう を見てみよう 「 「make」を実行してみよう」 を実行してみよう → 「kozos」という」 という 実行モジュール が作成されます 実行モジュール が作成されます

(21)

プログラムを動かしてみよう

プログラムを動かしてみよう

実行モジュール を,シミュレータで動かしてみよ 実行モジュール を,シミュレータで動かしてみよ う う やりかたは 配布資料を参照してください やりかたは 配布資料を参照してください ソースコードをいろいろいじってみよう ソースコードをいろいろいじってみよう 色を変えてみよう 色を変えてみよう テキストアニメーショ ンをやってみよう テキストアニメーショ ンをやってみよう

(22)

プログラムを読んでみよう

プログラムを読んでみよう

grep を使ってを使ってputs()を追ってみようを追ってみよう gets() を追ってみようを追ってみよう デバイスドライバを読んでみよう デバイスドライバを読んでみよう 割込み処理を読んでみよう 割込み処理を読んでみよう main()に来るまでを読んでみように来るまでを読んでみよう リンカスクリプトを読んでみよう リンカスクリプトを読んでみよう 読んでみたいところがあれば,そこを読んでみよう 読んでみたいところがあれば,そこを読んでみよう

(23)

このプログラムの問題点

このプログラムの問題点

例えば, 例えば,LED点滅を考えてみよう点滅を考えてみよう (シミュレータシミュレータ だと だとLEDが無いので,定期的に文字出力するこが無いので,定期的に文字出力するこ とで代用します とで代用します) 2つのこと 2つのこと(点滅とコマンド応答点滅とコマンド応答)を同時にやるとを同時にやると したらどうな るか? したらどうな るか? ダンプコマンドを考えてみよう ダンプコマンドを考えてみよう ダンプ中に点滅はダンプ中に点滅は どうな るか? どうな るか?

(24)

(25)

これを防ぐには

これを防ぐには

ル ープ処理な どがあったら,その都度そこに ル ープ処理な どがあったら,その都度そこに LED点滅の処理を入れる点滅の処理を入れる ダンプ処理な どの時間がかかる処理の最中に, ダンプ処理な どの時間がかかる処理の最中に, 定期的にメインル ープに戻る 定期的にメインル ープに戻る どれもめんどくさい! どれもめんどくさい!

(26)

OSを使うことでこれらの問題をクリアできます

を使うことでこれらの問題をクリアできます

今回使っている

(27)

では,

では,

OSを使った場合を見てみま

を使った場合を見てみま

しょう

しょう

「 「avr_03-sim」を見てみましょう」 を見てみましょう シミュレータで動かしてみましょう シミュレータで動かしてみましょう LEDの点滅処理を入れてみましょうの点滅処理を入れてみましょう

(28)

OSのソースコードを見てみよう

のソースコードを見てみよう

main()を見てみるを見てみる 各タスクの 各タスクのmain()を見てみるを見てみる kz_XXXX()の先を追ってみるの先を追ってみる タスクスケジューリングを見てみる タスクスケジューリングを見てみる タスクディスパッチを見てみる タスクディスパッチを見てみる

(29)

OSの必要性

の必要性

ベ ースシステムに ベ ースシステムにOSを使うことで,これらの2つを使うことで,これらの2つ の処理を「 タスク」 にして,並列に動作させ るこ の処理を「 タスク」 にして,並列に動作させ るこ とができます とができます 実際には 実際にはCPUはひとつなので,適当なタイミンは ひ とつな ので,適当な タイミン グで処理を切替えて複数のタスクを一見並列 グで処理を切替えて複数のタスクを一見並列 に動いているように見せ かけてくれます に動いているように見せ かけてくれます

(30)

OSの必要性

の必要性

な ぜ , な ぜ ,OSが必要なのか考えてみよう!が必要な のか考えてみよう! PCでは,なぜでは ,な ぜWindowsなどのな どのOSが必要なのだが必要な のだ ろうか? ろうか? 組込み機器でも 組込み機器でもOSが必要な理由は何か?が必要な 理由は 何か? (質問質問)ファイルシステムは,ファイル システムは ,OSの必須の機能の必須の機能 か? か?

(31)

OSの必要性

の必要性

PCと組込み機器では,と組込み機器では,OSの必要性が異なりますの 必要性が 異なります PCでは,アプリケーションが主役.アプリを動かすでは,アプ リケ ーションが 主役.アプ リを 動か す ための 汎用的なベース シス テ ム が 欲しい ための 汎用的なベース シス テ ム が 欲しい 組込み機器では,デ バイス が 主役.コス ト削減の 組込み機器では,デ バイス が 主役.コス ト削減の ため,1 つの マイコンで複数の 制御を 行いたい ため,1 つの マイコンで複数の 制御を 行いたい この ため この ためOSへの要望も異なってきますし,への 要望も異なってきます し,OSの思の 思 想も異なってきます 想も異なってきます (あと歴史も違うあと歴史も違う) (もう1度質問もう1 度質問)ファイルシステムは,ファイルシス テ ム は,OSの必須の機の 必須の 機 能か ? 能か ?

(32)

OSの歴史の違い

の歴史の違い

汎用 汎用OS メインフレームという巨大な共用コンピュータ メインフレームという巨大な共用コンピュータ (研究機関研究機関) (→ミニコンミニコン→ワークステーションやサーバのように発展ワークステーションやサーバのように発展) → 大学や研究所で,みんなで共用利用したい大学や研究所で,みんなで共用利用したい → マルチタスク,マルチユーザが発展マルチタスク,マルチユーザが発展 PC用OS(汎用汎用OSの一種?の一種?) 家電メーカーがマイコンという超安い 家電メーカーがマイコンという超安いCPUっぽいものを開発っぽいものを開発 → これで家庭用コンピュータ作れるんじゃね?これで家庭用コンピュータ作れるんじゃね? (家庭向け家庭向けPC)

→ GUIほしいよねほしいよね → マルチタスクマルチタスクOSほしいよねほしいよね(汎用汎用OS化) 組込み機器 組込み機器 電子機器を,マイコンでソフトウェア制御したい 電子機器を,マイコンでソフトウェア制御したい (家電業界家電業界) → 複数のデバイスを1個のマイコンで制御したい複数のデバイスを1個のマイコンで制御したい(コスト削減コスト削減) → モニタをマルチタスク化モニタをマルチタスク化 → これってこれってOSだよねだよね

(33)

じゃあ

じゃあ

OSって何なのか?

って何なのか?

(PCユーザの視点ユーザの視点)アプリを使うための基盤アプリを使うための基盤 (シシ ステムアプリを含む ステムアプリを含む) (ソフトウェア開発者の視点ソフトウェア開発者の視点)アプリを作るためのアプリを作るための 共通基盤 共通基盤 (システムコール,デバドラシステムコール ,デバドラ) (OS開発者の視点開発者の視点)コンピュータの基本要素コンピュータの基本要素 (CPU,メモリ,,メモリ,I/O)を管理するものを管理するもの (ソフトウェア階層からの視点ソフトウェア階層からの視点)ソフトウェアを階ソフトウェアを階 層下したとき,最下層にあるもの 層下したとき,最下層にあるもの

(34)

共通して言えるのは

共通して言えるのは

ユーザ視点では ユーザ視点では 自分が「 ここから下層は もう知らな くても良い 自分が「 ここから下層は もう知らな くても良い や」 という下位層を「 や」 という下位層を「OS」と言っている」 と言っている (Webアア プリ開発者にとっては ,ブラウザが プリ開発者にとっては ,ブラウザがOS.でも.でもOS 開発者からすれば,ブラウザは 単な る1アプリ 開発者からすれば,ブラウザは 単な る1アプリ) そういう意味で,自分の知らな いところでいろい そういう意味で,自分の知らな いところでいろい ろ勝手にやってくれるものを「 ろ勝手にやってくれるものを「OS」と言っている」 と言っている → OSは「妖怪」と言えるは 「 妖怪」 と言える

(35)

共通して言えるのは

共通して言えるのは

OS開発者は開発者は 自分が「 自分ですべ ての世界を作ってみた 自分が「 自分ですべ ての世界を作ってみた い!」 という下位層を,「 い!」 という下位層を,「OS」と言っている」 と言っている OS開発者としては開発者としては (OSに限らずに限らず)ぜひ「使う側」から「作る側」に来ぜ ひ 「 使う側」 から「 作る側」 に来 てほ しいです てほ しいです いろいろ新たな 世界が開けます いろいろ新たな 世界が開けます

参照

関連したドキュメント

このように、このWの姿を捉えることを通して、「子どもが生き、自ら願いを形成し実現しよう

共通点が多い 2 。そのようなことを考えあわせ ると、リードの因果論は結局、・ヒュームの因果

自閉症の人達は、「~かもしれ ない 」という予測を立てて行動 することが難しく、これから起 こる事も予測出来ず 不安で混乱

とディグナーガが考えていると Pind は言うのである(このような見解はダルマキールティなら十分に 可能である). Pind [1999:327]: “The underlying argument seems to be

析の視角について付言しておくことが必要であろう︒各国の状況に対する比較法的視点からの分析は︑直ちに国際法

自然言語というのは、生得 な文法 があるということです。 生まれつき に、人 に わっている 力を って乳幼児が獲得できる言語だという え です。 語の それ自 も、 から

 筆記試験は与えられた課題に対して、時間 内に回答 しなければなりません。時間内に答 え を出すことは働 くことと 同様です。 だから分からな い問題は後回しでもいいので

・私は小さい頃は人見知りの激しい子どもでした。しかし、当時の担任の先生が遊びを