ESP32でマルチタスクを行う為の、とりあえずここまで判った事 by freeRTOS 17タスク目 [ESP32]
現在実用ガイドを読みながら編集中、、、書いて有る事を信用しない様に!
http://www.profdong.com/elc4438_spring2016/USINGTHEFREERTOSREALTIMEKERNEL.pdf
ESP32はRTOSができるらしい、、、
カウンティングセマフォで使用する関数。
カウンティングセマフォでも、生成、Give、Takeそれぞれの関数を必要とするが、GiveとTakeに関してはバイナリーセマフォと同一の為、生成について解説する。
例によって2つの生成関数があり、1つは必要な領域を動的に生成するxSemaphoreCreateCounting関数。
1つは必要な領域をユーザーが事前に(静的に)生成しておくxSemaphoreCreateCountingStatic関数。
プロトタイプは以下になる。
(1) uxMaxCountは最大カウント数
(2) uxInitialCountはセマフォ生成時のカウント数の初期値
(3) 戻り値:NULLが返る時はセマフォの生成に失敗している。原因はHEAP領域の不足。それ以外なら成功している。
(1) uxMaxCountは最大カウント数
(2) uxInitialCountはセマフォ生成時のカウント数の初期値
(3) pxSempahoreBufferはユーザーが事前に生成した変数StaticSemaphoreのポインター
(4) 戻り値:NULLが返る時はセマフォの生成に失敗している。原因はpxSempahoreBufferがNULLであった。それ以外なら成功している。
http://www.profdong.com/elc4438_spring2016/USINGTHEFREERTOSREALTIMEKERNEL.pdf
ESP32はRTOSができるらしい、、、
カウンティングセマフォで使用する関数。
カウンティングセマフォでも、生成、Give、Takeそれぞれの関数を必要とするが、GiveとTakeに関してはバイナリーセマフォと同一の為、生成について解説する。
例によって2つの生成関数があり、1つは必要な領域を動的に生成するxSemaphoreCreateCounting関数。
1つは必要な領域をユーザーが事前に(静的に)生成しておくxSemaphoreCreateCountingStatic関数。
プロトタイプは以下になる。
SemaphoreHandle_t xSemaphoreCreateCounting( UBaseType_t uxMaxCount, UBaseType_t uxInitialCount );
(1) uxMaxCountは最大カウント数
(2) uxInitialCountはセマフォ生成時のカウント数の初期値
(3) 戻り値:NULLが返る時はセマフォの生成に失敗している。原因はHEAP領域の不足。それ以外なら成功している。
SemaphoreHandle_t xSemaphoreCreateCountingStatic( UBaseType_t uxMaxCount, UBaseType_t uxInitialCount, StaticSemaphore_t pxSempahoreBuffer );
(1) uxMaxCountは最大カウント数
(2) uxInitialCountはセマフォ生成時のカウント数の初期値
(3) pxSempahoreBufferはユーザーが事前に生成した変数StaticSemaphoreのポインター
(4) 戻り値:NULLが返る時はセマフォの生成に失敗している。原因はpxSempahoreBufferがNULLであった。それ以外なら成功している。
ITRONプログラミング入門 H8マイコンとHOSで始める組み込み開発
- 出版社/メーカー: オーム社
- 発売日: 2005/04/23
- メディア: Kindle版
リアルタイムOSと組み込み技術の基礎―実践μITRONプログラミング (TECHI (Vol.17))
- 作者: 高田 広章
- 出版社/メーカー: CQ出版
- 発売日: 2004/02
- メディア: 単行本
2018-02-28 09:32
nice!(0)
コメント(0)
コメント 0