Slide

Similar documents
Arduino をドリトルから 制御する教材の試行 鈴木裕貴 1

仮想化基礎演習テキスト Ⅰ 第 1.0 版 演習で学ぶ仮想化基礎 ( クライアント仮想化編 ) 九州ラーニングネット株式会社 特定非営利活動法人パソコン整備士協会

<4D F736F F F696E74202D20834A815B836C838B835C815B835882CC95E082AB95FB F4B2E B8CDD8AB B83685D>

Windowsユーザでも 手軽に作れるiPhoneアプリ

Pirates Buster Series Secure Viewer セットアップマニュアル (Web インストーラ)

SANS SEC401_PC設定の手引き

補足資料

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

Microsoft PowerPoint - install_NGSsokushu_windows(ver2.1).pptx

PowerPoint プレゼンテーション

Microsoft Word - CygwinでPython.docx

XAMPP で CMS のお手軽 テスト環境を手に入れよう 2011/5/21 上村崇 1

Windows10の標準機能だけでデータを完全バックアップする方法 | 【ぱそちき】パソコン初心者に教えたい仕事に役立つPC知識

Eclipse マニュアル <作成目的> Eclipse のインストール方法などを紹介したページはいろいろありますが 専門用語がわからない初心者でもわか りやすく Eclipse のインストール方法 基本操作などをまとめたマニュアル作成を目的としています <目次> 1 Eclipse のインストール

PowerPoint Presentation

目次

動機 もう6学期だし真面目に勉強しようと思った 真面目に授業聞いてみたけどよくわからなかった Amazonみてたら OS自作 という文字列を発見 話し聞いてもよくわからないしもはや自分で作っちゃえばいいんじゃない 駒場祭付近暇だしそこで 一気に作っちゃおう

ゲームプログラミング講習 第0章 導入

Delphi/400でFlash動画の実装

C#の基本

1 ログインとログアウト 1.1 ログイン ログイン画面で [ password ] 欄にパスワードを入力します (図 1) 図 1 ログイン画面 正しくログインができると Ubuntu のデスクトップ画面 図2 が表示されます 図2 Ubuntu デスクトップ画面 2

TFTP serverの実装

Microsoft PowerPoint - lecture2_PPT.pptx

ブート ~OS が起動されるまで~

2. 生田仮想デスクトップ PC の接続方法 生田仮想デスクトップ PC に接続する方法は 次の 2 通りです 1. HTML アクセス Internet Explorer や Safari などのブラウザを用います PC に特別なソフトウェアをインストールす る必要が無いので 管理者権限をもってい

図 1: 場所をクリックし ホームフォルダーをクリックすると (上図) ホーム フォルダー下にあるファイルやディレクトリの一覧を見ることができる 下図 2

b

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

Microsoft Word - RefApp7インストールガイド.doc

LightSwitch で申請システム Windows ストアアプリで受付システムを構築してみた 情報政策グループ技術職員金森浩治 1. はじめに総合情報基盤センターでは 仮想サーバホスティングサービスや ソフトウェアライセンス貸与といった さまざまなエンドユーザ向けサービスを行っている 上記のよう

目次 1. はじめに 本書対象者 PALRO のアプリケーションについて Ubuntu 8.04LTS の入手について Linux 上での開発環境の構築 事前準備 Ubuntu のインストール..

Microsoft PowerPoint - Kozos12step_

OS

1 目次 本書の構成 2 体験版申請用総合ソフトの機能 3 申請用総合ソフトとの相違点 体験版申請用総合ソフト ver.3.0 は, 本番用の申請用総合ソフト (3.0A) の機能に擬似データを加えたものです

サインイン 最初にサインインを行います サインインしたときとそうでないときでは 表示やメニューなどが少し違います アカウントがない場合 最初にアカウントを作りましょう サインインしていないとき サインインしたとき メッセージ 更新情報とお知らせがとどきます

Microsoft Word - Gmail-mailsoft設定2016_ docx

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

ATDEインストールガイド

スライド 1

Microsoft Word - CMSv3マニュアル-STB編(WindowsPC).docx

目次 第 1 章概要....1 第 2 章インストールの前に... 2 第 3 章 Windows OS でのインストール...2 第 4 章 Windows OS でのアプリケーション設定 TP-LINK USB プリンターコントローラーを起動 / 終了するには

Microsoft PowerPoint - 07.ppt [互換モード]

Biz パスワードクライアント操作マニュアル Android 編 1.01 版 2013 年 12 月 20 日 NTT コミュニケーションズ株式会社 NTT Communications 2013 All Rights Reserved

改訂履歴 改訂日付 改訂内容 2014/11/01 初版発行 2017/01/16 Studuino web サイトリニューアルに伴う改訂 2017/04/14 Studuino web サイトリニューアルに伴うアクセス方法の説明変更 2018/01/22 Mac 版インストール手順変更に伴う改訂

ヘルスアップWeb 簡単操作ガイド

JDK のインストール (2012 年 8 月時点でのバージョン ) Java の実行環境 開発環境は さまざまな企業 団体が開発 配布を行っているが 当テキストでは Java の生みの親である Sun MicroSystems 社 ( 現 Oracle 社 ) の実行環境 開発環境を使用する Ja

Microsoft Word - XOOPS インストールマニュアルv12.doc

Microsoft PowerPoint - sousa pptx

マウス操作だけで本格プログラミングを - 世界のナベアツをコンピュータで - プログラムというと普通は英語みたいな言葉で作ることになりますが 今回はマウスの操作だけで作ってみます Baltie, SGP System 操作説明ビデオなどは 高校 情

新規インストールガイド Microsoft Office Professional Plus 2016 本書は Download Station から Microsoft Office Professional Plus 2016( 以下 Office) をダウンロ ドし 新規インストールを行う手順

CR-UK1ソフトウェアユーザーズガイド

2. 生田仮想デスクトップ PC の接続方法 生田仮想デスクトップ PC に接続する方法は 次の 2 通りです 1. HTML アクセス Internet Explorer や Safari などのブラウザを用います PC に特別なソフトウェアをインストールす る必要が無いので 管理者権限をもってい

◎phpapi.indd

16 e-tax e-tax e-tax e-tax GPKI e-tax e-tax URL

Hphi実行環境導入マニュアル_v1.1.1

ADempiere (3.5)

Windows2000/XPインストール手順

使える! IBM Systems Director Navigator for i の新機能

ファクス送信用変換ソフト 操作説明書_UA

表紙2017

ダウンロードページアップデートマニュアル.ppt

Linux システムの導入と管理 コード L- 0:00~7:00 ( 休憩 含む ) 定員 0 名受講料 ( テキスト代含 ),00 前提条件 UNIX または Linux の基本的操作経験 ( コマンドによるファイル操作 ファイル編集 ) があること 最低開講人数 0 名 Linux システムの

2 ログイン ( パソコン版画面 ) Web サイトのログイン画面が表示されます 通知メールに記載されている ID と仮パスワードを入力して ログイン ボタンをクリックしてください ID パスワードを連続して 5 回間違うと 当 I D はロックアウト ( 一時的に使用不可 ) されるので ご注意く

12680 情報科学Ⅲ 情報メディア演習 情報機器の操作 [a] 担 当 者 加藤 周一 授 業 形 態 講義 コンピュータはハードウェアとソフトウェアがあって初めて我々に役に 立つ機器となる ハードウェアの原理 ソフトウェアのアルゴリズムに ついて述べる アルゴリズムについては実際に

スマートにプログラミング Android 入門編第 2 版 SDK4/2.3 対応 よくあるご質問 (FAQ) ここでは 読者の皆様から寄せられた質問の中で 比較的多く見受けられたトラブル事例とその解決策を集め掲載致しました お困りの際の解決のヒントとしてご利用下さい なお スマートにプログラミング

t20s3-fn09.pdf

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

2 / 8 オンデマンドダウンロード機能 を使用するときに次の制約があります 1. インターネットに接続されていない ( オフライン ) 場合は OneDrive エリアのみにあるファイルを開くことはできない 2.OneDrive エリアからダウンロードが完了するまでいくらか待たされるし ( 特に大

2

ic3_cf_p1-70_1018.indd

1 Word2007 を立ち上げて 表を作って内容を入力し 体裁を整える 1 時間の関係で あらかじめ下記のような簡単な文書を作成して デスクトップにファイル 旅行案内操作前 1 を置いてありますからこのファイルをダブルクリックして開いて下さい (* 時間のある方は末尾に表の挿入方法などを参考に書い

V-CUBE ミーティング

Studuinoソフトウェアのインストール

PowerPoint プレゼンテーション

PowerPoint Presentation

カルテダウンロード 操作マニュアル

組込み用Linuxボード,BeagleBone Blackにおける RTミドルウェアの動作と開発支援ツール

目次 1 VirtualBoot for Hyper-V とは バックアップを実行するマシンの設定 確認すべきこと SPX によるバックアップ VirtualBoot for Hyper-V を実行するマシンの設定 確

WagbySpec7

教材ドットコムオリジナル教材 0から始めるiアプリ (3) 0 から始める i アプリ (3) i アプリを作れるようになったならば次は公開です i アプリでは前述したように たとえエミュレータで動作確認ができたからといって実機のテストを怠ってはいけません 実機での処理速度 発色 プログラム等の耐性

Studuinoライブラリ環境設定Mac編

スライド 1

Splashtopスタートガイド

注意 インストール中に ユーザアカウント制御 ( 以下 UAC といいます ) の実行確認画面が表示されることがあります 表示された場合ははいをクリックして インストールを進めてください なお 管理者以外の場合 管理者への昇格を求める UAC 画面が表示される場合がありますので 管理者アカウントのパ

Si 知識情報処理

Java言語環境Java2SEついて

情報処理概論(第二日目)

商標類 Microsoft は, 米国およびその他の国における米国 Microsoft Corp. の登録商標です Microsoft Office は, 米国 Microsoft Corp. の商品名称です Microsoft Excel は, 米国 Microsoft Corp. の商品名称です

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

cmpsys15w07_os.ppt

すると メインメニューと呼ばれる DC さくらのメインウィンドウ部が表示されます ( 下の画面がスクリーンシ ョットです ) メインメニューは ウィンドウ右上の ボタンを押すと閉じます リスト内のアイテムは ダウンロードのタスクを表します ダウンロード状況を把握できます メニュー項目やボタンの説明は

7th CodeGear Developer Camp

Notesアプリが iPadで動くDomino Mobile Apps ご紹介

SpreadSheet Interface

LB メディアロック3 クイックガイド

Microsoft Word - Office365マニュアル_教職員向け.docx

il12-portal2.key

VG シリーズ用ローカルファームアップ / 自動ファームウェア更新設定手順書 VG400aⅡ ローカルファームアップ / 自動ファームウェア更新設定手順書

Microsoft PowerPoint - mwpro2_faq_ ppt

パソコンに CD-R を入れ起動します 少し時間を置いて画面が出ます 設定言語 : 日本語 Ubuntu LTS をインストールする をクリック パソコンの時間を合わせます 進む をクリック 通常は 既定値 japan を指定 小生は英語キーボードなので 使用するキーボードを指定する 入

Transcription:

Arduinoでの 組込み OS 自作体験坂井弘亮 (KOZOSプロジェクト ) TwitterID:kozossakai

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

自己紹介 趣味で組込み OS を作っています (KOZOS) セキュリティキャンプの講師をやっていますオープンソースカンファレンスなどのイベントに出展していますたまに勉強会とかもやっています本を何冊か書いています (12ステップで作る組込み OS 自作入門 )

他にも最近は, こんなのを作ったりしてます バイナリかるたとアセンブラ短歌

他にも最近は, こんなのを作ったりしてます バイナリカレンダー 2014

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

組込み機器 とは何か こういうのを 組込み機器 と言います

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

身の回りの組込み機器を考えてみよう 今日ここに来るまでに見た 組込み機器 を 5 つ, あげてみよう! ( 勘で良いです )

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

Arduino Arduinoも 組込み機器 の一種です

( おまけ ) Raspberry Pi もそうです

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

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

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

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

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

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

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

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

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

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

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

OSを使うことでこれらの問題をクリアできます 今回使っている OSは, これです

では,OS を使った場合を見てみま しょう avr_03-sim を見てみましょうシミュレータで動かしてみましょう LEDの点滅処理を入れてみましょう

OSのソースコードを見てみよう main() を見てみる各タスクの main() を見てみる kz_xxxx() の先を追ってみるタスクスケジューリングを見てみるタスクディスパッチを見てみる

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

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

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

OSの歴史の違い 汎用 OS メインフレームという巨大な共用コンピュータ ( 研究機関 ) ( ミニコン ワークステーションやサーバのように発展 ) 大学や研究所で, みんなで共用利用したい マルチタスク, マルチユーザが発展 PC 用 OS( 汎用 OSの一種?) 家電メーカーがマイコンという超安い CPU っぽいものを開発 これで家庭用コンピュータ作れるんじゃね? ( 家庭向け PC) GUIほしいよね マルチタスク OSほしいよね ( 汎用 OS 化 ) 組込み機器電子機器を, マイコンでソフトウェア制御したい ( 家電業界 ) 複数のデバイスを 1 個のマイコンで制御したい ( コスト削減 ) モニタをマルチタスク化 これって OSだよね

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

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

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