2011-07-19 19 views
0

親愛なるプログラマー! this論文で説明したようにコード作成者とリアルタイムデータ交換:ターゲットからホストへの通信の問題

トピックは、デジタル信号処理(DSP)、のCode Composer Studioの3.1とリアルタイムデータ交換(RTDX)です:

私は実際に次のような問題に関するいくつかの答えやヒントをいただければと思います。私はDSPとC-Noobであるので、話題を理解するのは苦労しました。私はいくつかの論文を読んで、Code Composerヘルプ - チュートリアルを勉強した後、やっと私はいくつかのエラーで動いていますが、最終的にいくつかの成功を収めました(私は、何か起こります!データ交換。

コード100個の整数、次々に送信する義務が、ターゲット(TMS320C6713 DSK)上で実行されているのthats:私はOLEオートメーションクライアントとして単純なJava /ヤコブの実装を実行するホスト上

RTDX_CreateOutputChannel(ochan); 
void main() 
{ 

    int data = 0; 
    int status; 

    TARGET_INITIALIZE(); 
    RTDX_enableOutput(&ochan); 

    puts("Start writing!\n"); 

    while(data < 100){ 

     data++; 

     /* send an integer to the host        */ 
     status = RTDX_write(&ochan, &data, sizeof(data)); 

     if (status == 0) { 
      puts("ERROR: RTDX_write failed!\n"); 
      exit(-1); 
     } 
    } 
    while (RTDX_writing != NULL) { 
      #if RTDX_POLLING_IMPLEMENTATION 
      RTDX_Poll(); 
      #endif 
    } 

    /* disable the output channel        */ 

    RTDX_disableOutput(&ochan); 

    puts("Program Complete!\n"); 

} 

を受け取った整数をコンソールに書き込みます。

これまでのところ、プログラムは正常に動作していますが、しか返しませんが、RTDX_writeは失敗します。

私が参照した論文で述べたように、"ターゲットアプリケーションは、データをバッファして通信インターフェイスに渡すユーザーライブラリインターフェイスのルーチンを呼び出します。"バッファーの問題でしょうか?それでも私は...バッファを処理するために

をあらゆる可能性を見つけることができませんでしたか、私は私が任意のヒントが評価されて

C.

を経験していないよ言ったように、多分それは、ちょうどnoobyプログラミング-間違いです。誰かがRTDXの経験を持っていて、以前に問題があったか、誰かが私にそのエラーについてもっと知る方法を教えてくれるかもしれません。また、私はトピックが非常に具体的なものであることを知っているので、より多くの情報が必要な場合は、私に与えることができます...

ありがとうございます!

アンディ

答えて

1

私はあなたがそれを扱うことができるよりも速くデータをチャネルを圧倒していると思います。例では、彼らはwhileループに書き込みをラップしていることに注意してください:

while (/* limit TOY EXAMPLE data rate */ 
    !RTDX_Data_Write(&ochan, data, sizeof(data)) /* send data */ 
); 

解説は言う:

このおもちゃの例では、唯一の CPUの速度によって制限され、非常に高いレートでデータを生成します。この例では、戻り値として RTDX_Data_Writeを使用して、データが正常に記録されたかどうかを確認しています。ループがビジー待機を行いながらデータが

を受け入れることができるまで、周辺 はアイデアがRTDX_Data_Writeリターンは、データを受け入れる準備ができているまで、あなただけ再試行してくださいように、クライアントは、忙しかった意味0時にということです。

実際の組み込みアプリケーションでは、メインループは無制限の速度で実行されるのではなく、固定フレームレートで実行される可能性があります。したがって、チャネルで処理できるサイズのデータ​​パケットを設計できます。 This TI forum postは、最大データレートが約20Kバイト/秒であることを示唆しています。

関連する問題