ESP32でマルチタスクを行う為の、とりあえずここまで判った事 by freeRTOS 23タスク目 [ESP32]
現在実用ガイドを読みながら編集中、、、ある事ない事書いちょりまっす!
http://www.profdong.com/elc4438_spring2016/USINGTHEFREERTOSREALTIMEKERNEL.pdf
ESP32はRTOSができるらしい、、、
排他制御について
〇 ミューテックス(とバイナリーセマフォ)、、、2
● 優先度の逆転
前回のデモプログラム http://hamayan.blog.so-net.ne.jp/2018-03-07-1 は、排他制御を行う場合の潜在的な落とし穴がある。デモプログラムを実行すると優先度の高いタスクが優先度の低いタスクに実行を待たされる場面がある。この現象を「優先度の逆転」と呼ぶ。
この望ましくない動作は特に中間の優先度を持つタスクが存在したときに問題になる。
優先度の低いタスクが優先度が中間のタスクにプリエンプトされて待ち状態に入った場合、優先度が中間のタスクが待ち状態に入るなどして優先度の低いタスクが再開されない限り優先度の高いタスクも待ち状態から再開されない。つまり本来は優先度の低いタスクと優先度の高いタスクの間で資源の排他制御を行っていたものが、優先度が中間のタスクが存在する為に優先度の高いタスクまで優先度の中間のタスクの動作に影響を受ける。
http://www.profdong.com/elc4438_spring2016/USINGTHEFREERTOSREALTIMEKERNEL.pdf
ESP32はRTOSができるらしい、、、
排他制御について
〇 ミューテックス(とバイナリーセマフォ)、、、2
● 優先度の逆転
前回のデモプログラム http://hamayan.blog.so-net.ne.jp/2018-03-07-1 は、排他制御を行う場合の潜在的な落とし穴がある。デモプログラムを実行すると優先度の高いタスクが優先度の低いタスクに実行を待たされる場面がある。この現象を「優先度の逆転」と呼ぶ。
この望ましくない動作は特に中間の優先度を持つタスクが存在したときに問題になる。
優先度の低いタスクが優先度が中間のタスクにプリエンプトされて待ち状態に入った場合、優先度が中間のタスクが待ち状態に入るなどして優先度の低いタスクが再開されない限り優先度の高いタスクも待ち状態から再開されない。つまり本来は優先度の低いタスクと優先度の高いタスクの間で資源の排他制御を行っていたものが、優先度が中間のタスクが存在する為に優先度の高いタスクまで優先度の中間のタスクの動作に影響を受ける。
ITRONプログラミング入門 H8マイコンとHOSで始める組み込み開発
- 出版社/メーカー: オーム社
- 発売日: 2005/04/23
- メディア: Kindle版
リアルタイムOSと組み込み技術の基礎―実践μITRONプログラミング (TECHI (Vol.17))
- 作者: 高田 広章
- 出版社/メーカー: CQ出版
- 発売日: 2004/02
- メディア: 単行本
2018-03-08 09:24
nice!(0)
コメント(0)
コメント 0