SSブログ

ESP32でマルチタスクを行う為の、とりあえずここまで判った事 by freeRTOS 28タスク目 [ESP32]

現在実用ガイドを読みながら編集中、、、ある事ない事書いちょりまっす!
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で始める組み込み開発

ITRONプログラミング入門 H8マイコンとHOSで始める組み込み開発

  • 出版社/メーカー: オーム社
  • 発売日: 2005/04/23
  • メディア: Kindle版



図解 μITRONによる組込みシステム入門(第2版)

図解 μITRONによる組込みシステム入門(第2版)

  • 作者: 武井 正彦
  • 出版社/メーカー: 森北出版
  • 発売日: 2018/02/17
  • メディア: 単行本(ソフトカバー)



μITRON4.0標準ガイドブック

μITRON4.0標準ガイドブック

  • 作者:
  • 出版社/メーカー: パーソナルメディア
  • 発売日: 2001/11/01
  • メディア: 単行本(ソフトカバー)



リアルタイムOSと組み込み技術の基礎―実践μITRONプログラミング (TECHI (Vol.17))

リアルタイムOSと組み込み技術の基礎―実践μITRONプログラミング (TECHI (Vol.17))

  • 作者: 高田 広章
  • 出版社/メーカー: CQ出版
  • 発売日: 2004/02
  • メディア: 単行本



nice!(0)  コメント(0) 

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。