ESP32でマルチタスクを行う為の、とりあえずここまで判った事 by freeRTOS 28タスク目 [ESP32]
現在実用ガイドを読みながら編集中、、、ある事ない事書いちょりまっす!
http://www.profdong.com/elc4438_spring2016/USINGTHEFREERTOSREALTIMEKERNEL.pdf
ESP32はRTOSができるらしい、、、
データタイプと命名規則、、、1
〇 データタイプ
FreeRTOSが使うデータタイプは以下の通りになる。
(1) ティックカウントを保存したり、ブロックするティック数を示したりする。portTickTypeは符号無し16bitまたは符号無し32bit型を取る。何bitにするかはFreeRTOSConfig.hの中のconfigUSE_16_BIT_TICKSに記述されている。
ESP32 Arduinoの定義を見てみると、
となっている、、、えーっときっと32bitなのだろうけれど、sizeof演算子で確かめてみると、、、4(32bit)でした。
16bit型の使用は、8bitとか16bitアーキテクチャの効率を格段に改善する。が、ブロックするティック数に厳しい制限が付く。32bitアーキテクチャに16bit型を使うのはセンスが悪い。
(2) これはアーキテクチャにとって、最も効率的な型を定義される。通常、32bitアーキテクチャでは32bit型であり、16bitアーキテクチャでは16bit型、8bitアーキテクチャでは8bit型となる。
portBASE_TYPEは一般的に論理型の限定的な値を返す戻り値として使われる。
※char型はコンパイラそれぞれで符号有り型、符号無し型があり、FreeRTOSではどちらの型の使用も認めている。
※int型は決して使わない。longまたはshort型のみである、、、となっているんだけれど、ESP32 Arduinoのportmacro.hの中では以下の様に記述されている。
おぃ!
ついで。portmacro.hの一部抜き出し。
http://www.profdong.com/elc4438_spring2016/USINGTHEFREERTOSREALTIMEKERNEL.pdf
ESP32はRTOSができるらしい、、、
データタイプと命名規則、、、1
〇 データタイプ
FreeRTOSが使うデータタイプは以下の通りになる。
portCHAR char portSHORT short portLONG long portTickType (1)を参照 portBASE_TYPE (2)を参照
(1) ティックカウントを保存したり、ブロックするティック数を示したりする。portTickTypeは符号無し16bitまたは符号無し32bit型を取る。何bitにするかはFreeRTOSConfig.hの中のconfigUSE_16_BIT_TICKSに記述されている。
ESP32 Arduinoの定義を見てみると、
#define configUSE_16_BIT_TICKS 0
となっている、、、えーっときっと32bitなのだろうけれど、sizeof演算子で確かめてみると、、、4(32bit)でした。
Serial.print( "portTickType size =" ); Serial.println( sizeof(portTickType), DEC );
16bit型の使用は、8bitとか16bitアーキテクチャの効率を格段に改善する。が、ブロックするティック数に厳しい制限が付く。32bitアーキテクチャに16bit型を使うのはセンスが悪い。
(2) これはアーキテクチャにとって、最も効率的な型を定義される。通常、32bitアーキテクチャでは32bit型であり、16bitアーキテクチャでは16bit型、8bitアーキテクチャでは8bit型となる。
portBASE_TYPEは一般的に論理型の限定的な値を返す戻り値として使われる。
※char型はコンパイラそれぞれで符号有り型、符号無し型があり、FreeRTOSではどちらの型の使用も認めている。
※int型は決して使わない。longまたはshort型のみである、、、となっているんだけれど、ESP32 Arduinoのportmacro.hの中では以下の様に記述されている。
#define portBASE_TYPE int
おぃ!
ついで。portmacro.hの一部抜き出し。
/* Type definitions. */ #define portCHAR int8_t #define portFLOAT float #define portDOUBLE double #define portLONG int32_t #define portSHORT int16_t #define portSTACK_TYPE uint8_t #define portBASE_TYPE int typedef portSTACK_TYPE StackType_t; typedef portBASE_TYPE BaseType_t; typedef unsigned portBASE_TYPE UBaseType_t; #if( configUSE_16_BIT_TICKS == 1 ) typedef uint16_t TickType_t; #define portMAX_DELAY ( TickType_t ) 0xffff #else typedef uint32_t TickType_t; #define portMAX_DELAY ( TickType_t ) 0xffffffffUL #endif
ITRONプログラミング入門 H8マイコンとHOSで始める組み込み開発
- 出版社/メーカー: オーム社
- 発売日: 2005/04/23
- メディア: Kindle版
リアルタイムOSと組み込み技術の基礎―実践μITRONプログラミング (TECHI (Vol.17))
- 作者: 高田 広章
- 出版社/メーカー: CQ出版
- 発売日: 2004/02
- メディア: 単行本
2018-03-09 09:19
nice!(0)
コメント(0)
コメント 0