(toppers-etrobo 55) Re: 【質問】EV3の動的ローディング時におけるデータキューの利用について

Eiichiro Yamamoto (Nifty) eiyama-h @ nifty.com
2016年 1月 11日 (月) 11:33:56 JST


李様

返事が遅くなりましたが,連絡ありがとうございました.
EV3RT Beta 7のリリースを心待ちにしております.
よろしくお願いします.


山本栄一郎

-----Original Message----- 
From: YIXIAO LI
Sent: Friday, January 8, 2016 2:24 PM
To: Eiichiro Yamamoto (Nifty) ; etrobo @ toppers.jp
Subject: (toppers-etrobo 54) Re:【質問】EV3の動的ローディング時におけるデータキューの利用について

山本様

李です。

データキューの件についてですが、EV3RT Beta 6は、
エラーメッセージの通り、動的ローディングモードでの生成は
まだサポートしていません。

そこで、近いうちにEV3RT Beta 7はリリースされる予定です。
Beta 7の機能拡張の一つとして、データキュー、優先度データキュー、
ミューテックスも動的ローディングモードで利用可能になります。

リリースされたら、またメールでお知らせします。
以上、どうぞよろしくお願いします。

李 奕驍(リ エキギョウ)

2016年1月2日 17:24 Eiichiro Yamamoto (Nifty) <eiyama-h @ nifty.com>:
> 李様
>
> イベントフラグの件で,お世話なった山本です.
> その節は,大変ありがとうございました.
>
> さて,イベントフラグで同期を取るだけではなく,データの送受信が必要な場合もあるので,データキューの使用も考えています.
> NXTでデータキューのテスト用に作ったプログラムをEV3RT用に変換して動かしてみました.
> 静的ローディングの場合は,問題なく動作したのですが,動的ローディングでは,
> cfg:../test_dtq1_ev3/app.cfg:70: error: E_NOSPT: CRE_DTQ is not supported 
> in
> dynamic loading mode
> というエラーが出て,コンパイル(make)が通りません.
>
> コンフィギュレーション・ファイルは,下記のようになっています.
> カラー・センサーからセンサー値を読み込むタスク(TSK_LIGHT,周期ハンドラCYC0で500msec周期で起動)で読み込んだ値を,データキューを使って,メインタスク(TSK_MAIN)に送信し,メインタスクで,この値を受信するようにしています.タッチ・センサーの押下によりメインタスクを終了させていますが,タッチ・センサーの押下は,タッチ・センサーのタスク(TSK_TOUCH,周期ハンドラCYC1で50msec周期で起動)で検出しているので,イベントフラグも併用しています.
>
> ====================
> INCLUDE("app_common.cfg");
>
> #include "app.h"
> #include "testsensor.h"
>
> DOMAIN(TDOM_APP) {
> /* 周期ハンドラの定義 */
> EV3_CRE_CYC(CYC0, { TA_STA, 0, cyc0, 500, 0});
> EV3_CRE_CYC(CYC1, { TA_STA, 0, cyc1, 50, 0});
>
> /*  タスクの定義 */
> CRE_TSK(TSK_MAIN, { TA_ACT, 0, main_task, TMIN_APP_TPRI + 1, STACK_SIZE,
> NULL });
> CRE_TSK(TSK_LIGHT, { TA_NULL, 0, light_sense, TMIN_APP_TPRI + 3, 
> STACK_SIZE,
> NULL });
> CRE_TSK(TSK_TOUCH, { TA_NULL, 0, touch_sense, TMIN_APP_TPRI + 2, 
> STACK_SIZE,
> NULL });
>
> /* イベントフラグの定義 */
> CRE_FLG(EVT_FLGID, { TA_CLR, 0});
>
> /* データキューの定義 */
> CRE_DTQ(DT_QID, { TA_NULL, 2, NULL});
> }
>
> ATT_MOD("app.o");
> ATT_MOD("testsensor.o");
> ATT_MOD("Sensor.o");
> ATT_MOD("TouchSensor.o");
> ATT_MOD("LightSensor.o");
> ====================
>
> どこに問題がありそうなのか,御教示いただければ幸いです.
> よろしくお願いします.