マイコン入門spacer ad
トップページに戻る(マイコン徹底入門:STM32で始めるARM/Cortex-M3組み込み開発)
「マイコン徹底入門」とは? |  「マイコン徹底入門」を読む |  ダウンロード |  掲示板 |  筆者の自己紹介


Previous: 3.2. タスクにパラメータを渡す(整数値)

Up: 3. タスク管理

Next: 3.4. 一つのタスク用関数で複数のタスクを登録する


マイコン徹底入門:RTOS編:フリーのリアルタイムOS活用法: 3. タスク管理:

3.3. タスクにパラメータを渡す(文字列)

サンプルプログラム

freertos_pvParameters_string

 前項のサンプルでは整数値を渡しましたが、ポインタなので文字列を渡すこともできます。処理の流れは前項のものとほとんど変わりません。

 まず渡す文字列を宣言・定義しておきます。

int8_t TaskA_symbol[] = "Aa";

int8_t TaskB_symbol[] = "Bb";

 xTaskCreate関数では同じくポインタを渡します。

xTaskCreate(prvTaskA, (signed portCHAR *)"TaskA", 192, &TaskA_symbol, 1, NULL);

xTaskCreate(prvTaskB, (signed portCHAR *)"TaskB", 192, &TaskB_symbol, 1, NULL);

 タスク用関数では、受け取った仮引数をint8_t型のポインタにキャストします。文字列なのでポインタのままで利用します。

void prvTaskA(void *pvParameters)

{

? int8_t* pcTaskName;

? pcTaskName = (int8_t *)pvParameters;

 このサンプルプログラムの実行結果は以下の通りです。

BbBbBbBbBbBbAaAaAaAaAaAaBbBbBbBbBbBAaAaAaAaAaAabBbBbBbBbBbBAaAa

AaAaAaAbBbBbBbBbBbBaAaAaAaAaAabBbBbBbBbBbBAaAaAaAaAaAbBbBbBbBbB

bBaAaAaAaAaAabBbBbBbBbBbBAaAaAaAaAaAbBbBbBbBbBbBaAaAaAaAaAabBbB

...


Previous: 3.2. タスクにパラメータを渡す(整数値)

Up: 3. タスク管理

Next: 3.4. 一つのタスク用関数で複数のタスクを登録する


このページはITと知的財産の法律情報「法務ネット」の管理人が制作・運営しています。