(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No02\201i\224z\225z\227p\201j.pptx)

Similar documents
(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No03\201i\224z\225z\227p\201j.pptx)

arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No04\201i\224z\225z\227p\201j.pptx)

TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門 作品のタイトル : Toppers_JSP と Scicos_lab / (Scilab でも可 ) による 組込みメカトロニクス制御シミュレーション 作成者 : 塩出武 ( シオデタ

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

出 アーキテクチャ 誰が 出 装置を制御するのか 1

PowerPoint Presentation

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

三菱電機マイコン機器ソフトウエア株式会社

CPUスケジューリング

OS

PowerPoint プレゼンテーション

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

POSIXスレッド

プログラミング実習I

内容 1. APX-3302 の特長 APX-3312 から APX-3302 へ変更するためには 差分詳細 ハードウェア ハードウェア性能および仕様 ソフトウェア仕様および制限 Ini ファイルの設

TFTP serverの実装

CommCheckerManual_Ver.1.0_.doc

cmpsys15w07_os.ppt

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

Microsoft PowerPoint - sp ppt [互換モード]

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

PowerPoint プレゼンテーション

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

ETCB Manual

プログラミング基礎

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

FE-210 取扱説明書

計算機システム概論

TopSE並行システム はじめに

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

ルート プロセッサ

Developer Camp

目次 はじめに 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

PRIMERGYマネジメントブレード

ルネサス半導体セミナースケジュール

2015 TRON Symposium セッション 組込み機器のための機能安全対応 TRON Safe Kernel TRON Safe Kernel の紹介 2015/12/10 株式会社日立超 LSIシステムズ製品ソリューション設計部トロンフォーラム TRON Safe Kernel WG 幹事

ルート プロセッサ

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

関数 C 言語は関数の言語 関数とは 関数の定義 : f(x) = x * x ; 使うときは : y = f(x) 戻り値 引数

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

04-process_thread_2.ppt

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

Microsoft PowerPoint - OS04.pptx

01-introduction.ppt

Studuinoプログラミング環境

C#の基本

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

スライド 1

TOPPERS活用アイデア・アプリケーション開発

スライド 1

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

Microsoft PowerPoint - Skype for business の概要.pptx

今週の進捗

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

ネットワーク設定マニュアル(Admint BOX編)Version.1.2

智美塾 ゆもつよメソッドのアーキテクチャ

Microsoft PowerPoint - OS07.pptx

05-scheduling.ppt

MS5145 USB シリアル エミュレーション モードの設定

1. 概念 STM32F4 Discovery 基板は Mini USB を接続して デバッグやプログラムの書き込みができるようになっています 通常は CPU の 0x 番地からプログラムを実行します では なぜわざわざこのプロジェクトの雛形を使用して CPU の 0x

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

PowerPoint Presentation

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

Microsoft PowerPoint - 01_Vengineer.ppt

Microsoft PowerPoint - prog03.ppt

マニュアル訂正連絡票

10-vm1.ppt

講義の進め方 第 1 回イントロダクション ( 第 1 章 ) 第 2 ~ 7 回第 2 章 ~ 第 5 章 第 8 回中間ミニテスト (11 月 15 日 ) 第 9 回第 6 章 ~ 第 回ローム記念館 2Fの実習室で UML によるロボット制御実習 定期試験 2

PowerPoint Presentation

計算機アーキテクチャ

スライド 1

PowerPoint プレゼンテーション

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

1 Atollic TrueSTUDIO( GR-PEACH TOPPERS/ASP ASP GR-PEACH mbed ( git

今回の内容 マイクロコンピュータにおけるプログラミング 機器の中に組み込まれる ロボット 自動車 家電 などいろいろな分野で利用 プログラムを用いて外部の装置を動作させる マイコンから の出力 発光ダイオード Light Emitting Diode 液晶ディスプレイ Liquid Crystal

初心者のための RL78 入門コース ( 第 3 回 : ポート出力例 2 とポート入力 ) 第 3 回の今回は, 前回作成したプログラムを RL78/G13 のハードウェアを用いて見直しをお こないます 今回の内容 8. コード生成を利用した実際のプログラム作成 ( その 2) P40 9. コー

ENI ファーマシー受信プログラム ユーザーズマニュアル Chapter1 受信プログラムのインストール方法 P.1-1 受信プログラムのシステム動作環境 P.1-2 受信プログラムをインストールする P.1-9 受信プログラムを起動してログインする P.1-11 ログインパスワードを変更する

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

PowerPoint プレゼンテーション

<4D F736F F F696E74202D D4C82F08A B582BD A A F2E707074>

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

FlashAir 設定ソフトウエア株式会社東芝セミコンダクター & ストレージ社 Copyright 2012 TOSHIBA CORPORATION, All Rights Reserved. 対応 OS: Windows XP SP3 / Vista SP2 / 7 (32bit/64bit)

SpeC記述のC記述への変換 (SpecCによるソフトウェア記述の実装記述への変換)

Microsoft PowerPoint ppt

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156-

PNopenseminar_2011_開発stack

Microsoft PowerPoint - 計算機言語 第7回.ppt

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

Taro-82ADAカ.jtd

手順書 20 イメージ最小化作業 はじめに JumboSpot を動かすために使用している RaspberryPi( 以下 ラズパイ という ) に Pi-Star という OS 兼ソフトウェアを microsd カードにセットアップして利用しているが バックアップイメージを残す際に利用するソフトウ

Microsoft Word - XPC4ソフトマニュアル.doc

Microsoft PowerPoint - 【最終提出版】 MATLAB_EXPO2014講演資料_ルネサス菅原.pptx

TRQerS - Introduction

目次 1. 概要 動作環境

プログラミング入門1

Photo Sensor – 적외선 센서

Transcription:

前回の講義のおさらい 組み込みソフトウェア工学 第 2 回組み込み OS の基本とその特徴 どんなものが組み込みシステムなのか? 身の回りの組み込み機器 インフラ系の組み込み機器 組み込みシステムのソフトウェア 人の持つノウハウ, すばやい処理, 複数の処理 組み込みシステムの定義 ハードウェアとソフトウェアが緊密に統合されたコンピュータシステム ハードウェア, ソフトウェアの共同開発 1 本日の内容 IT 技術者と組込み技術者の違い 組み込みOSの基本とその特徴 組み込みソフトウェアとは 簡単な組み込み機器の例 タスクについて デジタルカメラの例 割り込みを使った事例 タスク管理について RTOSにおけるタスク OS が無い機器の例 何が違うか? ソフトウェアの開発技術について基本的な違いはない あえていうのであれば扱うレイヤ ( 層 ) が違う 目に見える製品やモノ作りがある ハードウェアの知識が必要 ハードウェアの技術者との折衝が必要 組み込み技術者の方が技術に長く携われる 製造業の中では技術者の立場が確立されている 1 つの技術を極めるとキャリアが積みやすい ( 神になる!) RTOS を扱う ( 場合がある ) 3 情報工学セミナー第 1 回

組み込みエンジニアに求められるもの 組み込みソフトウェアとは 組み込み知識 ソフトウェア技術 電気, 機械の知識が必要になる C 言語で最初に記述する Hello, World 通常プログラムは main 関数から始まる では電源を入れたらすぐ動く組み込みシステムの場合は? 電気 電子回路論理回路 電子 電気技術 ( エレキ ) 機構設計技術 ( メカ ) メカトロニクス main 関数が動く前にはどんな処理が必要なのだろうか? main( ) printf( Hello, World! n ); どこに表示するのか? 表示する関数はあるのだろう? もし無ければどうするのか? 組み込みシステム開発で成功するにはハードウェアエンジニアとの適切なコミュニケーションを行うスキルを上げることが必要となる. プログラムが終了したらどんな処理が必要なのだろうか? 5 6 組み込みソフトウェアとは 組み込みソフトウェアとは C 言語で最初に記述する Hello, World 各種初期化 通常プログラムは main 関数から始まる CPUの初期化, 割込みベクタの設定, スタック領域の初 では電源を入れたらすぐ動く組み込みシステムの場合は? 期化, 各種変数の初期化, 入出力装置の初期化, など main 関数が動く前にはどんな処理が必要なのだろうか? main( ) printf( Hello, World! n ); プログラムが終了したらどんな処理が必要なのだろうか? 標準ライブラリ 入出力装置の処理, メモリ管理, どこに表示するのか? 表示する関数はあるのだろう? もし無ければどうするのか? 終了処理 入出力装置の終了処理, メモリの解放, 電源処理など 7 機能が単純で, システム規模が小さい場合 電源を切ら無い限り終了しない 初期化部分 main( ) while(1) 機能プログラム CPU は走り出したら止まらない 機能が複雑で, システム規模が大きい場合 初期化部分 統合管理 機能 (1) 機能 (2) 機能 (3) func1( ) プログラム return x; 終了処理 OS が各タスクの概念と待ちの状態を作る 8

簡単な組み込み機器例 簡単な組み込み機器例 ( 状態遷移 ) SCSI IF と IDE IF を変換する組み込み機器 SCSI SCSI IF SCSI 制御 メモリ CPU (Z80) バッファ制御 IDE IF 受信中 データの受信 送信中送信コマンドデータの送信 初期化 受信コマンド 待機 その他の処理 命令待ち コマンド 命令 命令はどこから来るのか? コマンド解析 SCSI LSI のセットアップ メモリへの DMA 設定 データ転送 1 IDE へのコマンド発行 メモリへの DMA 設定 データ転送 2 SCSI IF IDE IF IDE IF SCSI IF 非常に簡単な構造のプログラム CPU 9 10 簡単な組み込み機器例 ( 状態遷移 ) 簡単な組み込み機器例 受信中 データの受信 送信中送信コマンドデータの送信 初期化 受信コマンド 非常に簡単な構造のプログラム 待機 その他の処理 命令待ち コマンド 命令 コマンド解析 SCSI IF にデータあり? SCSI コマンド? 割込みの発生 SCSI の LSI に入ったデータによって割込み処理で命令を伝える 電源を入れたら動きっぱなし 仕事は同時に複数はこなせない 待機からの状態を変化させるには外部からの割込みが必要 プログラムの構造は非常に簡単 OS と呼べるものは不要となっている OS が無い組み込みシステムは割り込みが重要しかし, 割り込みを単に作成するだけでは問題となる 11 12

割り込みを使った処理 ( 電卓の例 ) 割り込みを使った処理 ( 電卓の例 ) 割り込みの優先度が無い例 割り込みの優先度がある例 文字入力の優先度を上げることで, 文字を読み取ることができる 通信回線 文字入力 割り込みの優先度が無いと電卓の文字が読み取れない 文字入力 通信回線 文字入力 電卓処理 PC の処理?????? 電卓処理 PC の処理 13 14 簡単な組み込み機器例 デジタルカメラのブロック図 電源を入れたら動きっぱなし レンズ 絞り ぶれ防止 カラー化雑音除去拡大他 仕事は同時に複数はこなせない 待機からの状態を変化させるには外部からの割込みが必要 ピント合わせ CCD 信号処理 メモリ 液晶モニタ プログラムの構造は非常に簡単 OS と呼べるものは不要となっている モータ制御 モータ制御 モータ制御 CPU シャッター各種ボタン 複雑な処理が複数あるような機器の場合はどうするのだろうか? 距離センサ 例えば.. デジタルカメラの場合には... 15 16

デジタルカメラのタスク構成と連携 画像取込み CCD タスク画像メモリ表示タスク 起動データ周期起動 記録画像情報 タスクとは何か ある機能を実現するために実行するプログラム プログラムの最小単位 タスクの実体は実は 関数 である モニタ 撮影完了 CF カート ジョブ (job), プロセス (process) とも言われる シャッタシャッタタスク撮影タスク全押半押合焦タスク合焦完了イベントによって必要なタスクが次々と動き 目的とする機能を実現 このための制御をするものが RTOS 17 18 ちなみに... デジタルカメラのタスクの複数動作 Task1 Task2 void task(.. ).. while(1).. タスクとソースコードは必ずしも一対一で存在するわけではない. 図のように 1 つの関数に対して 2 つのタスクが起動される場合もある. シャッタ画像取込みタスク表示タスク タスクは常に複数動作している画像取込みタスク表示タスク表示タスク タスクとは複数の並列した仕事を簡単に記述することができる. 複数の仕事を 1 つのタスクが行うのではなく, ある仕事を行うプログラムに対して複数のタスクを起動させた方が簡単で拡張性がある. 取り込んだ画像をそのまま表示 シャッタタスク合焦タスク撮影タスク 一定時間撮影された画像を表示する 画像を取り込み, 処理を行う 19 20

タスクの複数動作 RTOS の基本用語 複数のタスクが同時に動く 各タスクは即時対応が求められる 各タスクを管理するための仕組みとして RTOS (Real-Time OS) が必要となる RTOS を使うには以下の用語の知識が必要となる タスク ある機能を実現するためのプログラム. 複数のタスクを動かす為にタスクのスケジュールが必要となる セマフォ 複数のタスクが共有資源にアクセスをする場合の調整を行うためのもの メッセージキュー バッファのようなデータ構造を持つ. タスク間のメッセージの受け渡しにより, 同期制御, 排他制御, データ交換ができる 21 22 一般的な OS のタスク管理 リアルタイム性の優先度 理容店を 1 つのシステムとして考えてみると... リアルタイム性とは発生したイベントに対して決められた時間内に応答することが重要 処理 A の制限時間 マスター : 調髪弟子 : 顔剃り 弟子は何もすることがない マスターは何もすることがない 処理 A 処理 A の優先度 理容店にしてみればどんなお客でも同じ位大事なので, 店に入った順番で作業を行う. 優先度という考えがない. 次のお客が来るとマスターが対応 さらに次のお客が来るとどんなに急いでいても待つしかない 処理 B の制限時間 処理 B 処理 B の優先度 制限時間の短い処理の優先度を高くする 23 24

リアルタイム性の優先度 リアルタイム性の確保 リアルタイム性とは発生したイベントに対して決められた時間内に応答することが重要 朝食の準備を 1 つのシステムとして考えてみると... この間は待てる ランプを消す 全ての準備が整う 優先度 高 処理 Aの制限時間リアルタイムとは 直ぐに という意味処理 A 処理 Aの優先度 ではない!! 処理 B の制限時間 処理 B 処理 B の優先度 制限時間の短い処理の優先度を高くする 25 コーヒーの準備 パンの準備 目玉焼きの準備 この間は待てる サラダの準備 火を消す 発生するイベント毎に対応する時間が異なる 発生するイベントとその重要性で対応する優先度優先度を決めておく 低 26 組み込み環境下でのプログラミング RTOS のメリット RTOS を使うことで組み込みの動作環境を隠蔽することができる. RTOS を使うことでアプリケーションの世界と HW や FW の世界とが分離できる 各処理に対するリアルタイム性の確保 各処理のデッドラインを守れるかどうか アプリケーションをタスクに分割できる アプリケーション側と HW/FW を分離できる RTOS に標準装備されている API が使用可能 排他制御 ( セマフォ ) は困難でない デッドロックを避けることができる 各処理の記述は一般のPCのSWと似ている 27

ポーリング (polling) による処理 void main( void ) 初期化および割り込み処理開始 プログラム 装置 (c) に対する処理 装置 (a) に変化はあるか? 装置 (b) に変化はあるか? 装置 (c) に変化はあるか? 装置 (c) に変化あり! 再び装置 (a) を監視する 装置 (a) 装置 (b) 装置 (c) 装置 (d) 装置 (e) 順に装置の状態を確認することで, 全ての装置の状態を監視する 問題点ある装置の状態が変化しても, 優先されるわけではないので, 監視の順番が来るまで待つ必要がある.( 即応性がない ) 無限に繰り返す while(1) サンプル :mailloop.c if( 状況が Aのとき ) Aに対する処理 if( 状況が B のとき ) Bに対する処理 if( 状況が C のとき ) 割り込み処理よって状況が変化する C に対する処理 OS が無い機器のプログラム例 int proc_a ( void ) 割り込みの禁止 : 詳細処理 : 割り込みの許可 return rc; クーラーの場合の疑似コード while(1) if( 操作パネルの変化 ) 操作パネル用関数 if( 風量変化 ) 風量変化用関数 if( 方向の変化 ) 方向変化用関数 if ( 温度測定 ) 温度測定用関数 if ( 電流測定 ) 電流測定用関数 if ( 温度が設定を越えた && ファン停止 ) ファン回転関数 if ( 温度が設定に達した && ファン回転 ) ファン停止関数 割り込み処理 タイマー 1 割込関数 if( 温度測定 == 0 ) 温度測定 = 1; タイマー 2 割込関数 if ( 電流測定 == 0 ) 電流測定 = 1; 操作パネル割込関数 if( 風量ボタン == 1 ) 風量変化 = 1; if( 方向ボタン == 1 ) 方向変化 = 1; 実習機器 PIC 実習用ボード 実習用機構 BOX

実習用 CPU ボード 実習用 BOX スピーカー PIC書込用 コネクタ 実習用BOX 接続用コネクタ モーター 1 モーター自動停止 On/Off SW モーター 2 PIC書込用 リセットSW 電源コネクタ 5V LED LCD表示器 LED (4個) 実習用 ボード 接続ケーブル 電源コネクタ 9V を接続 フォトインタラプト センサーA ロータリー エンコーダ 切替用スイッチ インタラプタ or SW 電源スイッチ 押しボタンスイッチ A/B 押しボタンス イッチと LED 開発ツール MPLAB フォトインタラプト センサーB 本日の内容 組み込みOSの基本とその特徴 組み込みソフトウェアとは 簡単な組み込み機器の例 タスクについて デジタルカメラの例 割り込みを使った事例 タスク管理について RTOSにおけるタスク OS が無い機器の例 36