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


Previous: 4.2. キューへの追加(後ろへの追加・Blocked状態)

Up: 4. キュー

Next: 4.4. 複数の送信用タスクからのデータの受け取り


マイコン徹底入門:RTOS編:フリーのリアルタイムOS活用法: 4. キュー:

4.3. キューへの追加(前への追加)

サンプルプログラム

freertos_queue_to_front

 キューは先入れ先出し式のデータ構造なので、データを追加するのは後ろから、データを取り出すのは前からです。もっともFreeRTOSのキューはデータをキューの前に追加することもできます。これにより、キューからデータを受信するタスクに対して、既にキューに入っているデータを追い越して、一定のデータを優先して受け取らせるということができます。

 キューの前にデータを送信するにはxQueueSendToFront関数を指定します。

関数名

xQueueSendToFront関数

関数プロトタイプ

portBASE_TYPE xQueueSendToFront

? (

??? xQueueHandle xQueue,

??? const void * pvItemToQueue,

??? portTickType xTicksToWait

? );

動作

キューの先頭にデータを送信します。

引数

xQueue

データの送信先となるキューのハンドラを指定します。

pvItemToQueue

キューに送信するデータをポインタで指定します。

xTicksToWait

送信先のキューがいっぱいである場合の最大待ち時間を指定します。

戻り値

送信結果

pdPASS

送信成功

errQUEUE_FULL

キューがいっぱいであり、最大待ち時間を経過してもキューに送信できなかった

 関数の使用方法自体はxQueueSendToBack関数と同じです。このサンプルプログラムでは、freertos_queue_to_back_pollingと同じ処理の流れで、キューからの受信用関数だけをxQueueSendToFront関数に変更しています。「send data to front」と入力したのですが、データがキューの前に、前にと追加されるので、入力されたデータが1秒毎に順番が逆になっています。

dnesatadnorf ot t


Previous: 4.2. キューへの追加(後ろへの追加・Blocked状態)

Up: 4. キュー

Next: 4.4. 複数の送信用タスクからのデータの受け取り


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