0

親愛なる仲間のプログラマー!

次の問題に関するいくつかの回答またはヒントを本当にいただければ幸いです。

このホワイトペーパーで説明されているように、トピックはデジタル信号処理(DSP)、Code Composer Studio 3.1、およびリアルタイムデータ交換(RTDX)です。私はDSPでC-Noobなので、このトピックを理解するのに苦労しました。いくつかの論文を読み、Code Composer Help-Tutorialsを実行した後、最終的にいくつかの成功を収めました(Yay、SOMETHINGが発生します!)が、単純なTarget-to-Hostを実装しているときに、理解できないエラーが発生しています。データ交換。

ターゲット(TMS320C6713 DSK)で実行されているコードは、100個の整数を次々に送信する必要があります。

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" );

}

ホスト上で、受信した整数をコンソールに書き込むOLEオートメーションクライアントとして単純なJava/Jacob実装を実行します。

これまでのところ、プログラムは機能しますが、->整数が約86になるまでのみ、RTDX_writeは失敗します。

私が言及した論文で述べたように、「ターゲットアプリケーションは、データをバッファリングして通信インターフェイスに渡すユーザーライブラリインターフェイスのルーチンを呼び出します。」それで、多分それはバッファの問題ですか?それにもかかわらず、私はバッファを処理する可能性を見つけられませんでした...

あるいは、私がCの経験がないと言ったように、それは単なるプログラミングの間違いなのかもしれません。

したがって、ヒントをいただければ幸いです。誰かがRTDXの経験があり、以前に問題があったか、誰かがそのエラーについてもっと知る方法を教えてくれるかもしれません。また、トピックは非常に具体的なものであることがわかります。したがって、さらに情報が必要な場合は、...

事前にどうもありがとうございました!

アンディ

4

1 に答える 1

1

処理できるよりも速くデータでチャネルを圧倒していると思います。この例では、書き込みをwhileループでラップしていることに注意してください。

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

解説によると:

このおもちゃの例は、CPU速度によってのみ制限される非常に高いレートでデータを生成します。この例では、RTDX_Data_Writeの戻り値を使用して、データが正常にログに記録されたかどうかを判別しています。周囲のwhileループは、データが受け入れられるまでビジーウェイトを実行します

RTDX_Data_Write0を返す場合はクライアントがビジーであることを意味するため、データを受け入れる準備ができるまで再試行するという考え方です。

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

于 2011-07-19T20:06:21.997 に答える