реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Вопросы по RTDX
Degun
сообщение Nov 1 2007, 17:58
Сообщение #1


Частый гость
**

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



Процессор DM642 на evalution board. JTAG-эмулятор XDS560R.
Имеются два вопроса по RTDX:
1. Как измерить скорость передачи данных через RTDX? Вообще чему равна типичная скорость передачи по этому каналу. В дополнение к этому могу сказать, что частота TCLK эмулятора равна 13.75 мГц.
2. Можно ли передавать данные на PC одновременно по двум каналам EMU0 и EMU1?
Go to the top of the page
 
+Quote Post
Degun
сообщение Nov 15 2007, 11:59
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



Написал небольшую программку, которая передаёт случайные данные из target в host по RTDX.
Код
#include <rtdx.h>
#include <stdlib.h>

// declare a output RTDX channel
RTDX_CreateOutputChannel( ochanData );

//Packet size and RTDX data bufer
#define RTDX_PACKET_SIZE 1016
static char vBuf[RTDX_PACKET_SIZE];

int main()
{
    unsigned int i, returncode;

    //Set rtdx bufer data
    for (i=0; i<RTDX_PACKET_SIZE; i++) vBuf[i]=rand()%256;

    // enable the output channel
    RTDX_enableOutput( &ochanData );

    //infinite loop send data
    while(1)
    {
        // make sure writes go through
        do {
            returncode = RTDX_write( &ochanData, vBuf, RTDX_PACKET_SIZE );
        } while(returncode==0);
        // check if RTDX channel is ready
        while ( RTDX_writing != NULL ) {
#if RTDX_POLLING_IMPLEMENTATION
            RTDX_Poll();
#endif
        }
    }

    return 1;
}

Возникли следующие вопросы:
1. Почему максимальный размер пакета данных, передаваемых за один вызов функции RTDX_write, ограничен 1016 байтами, а при превышении этого кол-ва данные на host не поступают?
2. Почему программа после первого успешного вызова RTDX_write зависает на строке while ( RTDX_writing != NULL ) ?
Go to the top of the page
 
+Quote Post
Degun
сообщение Nov 19 2007, 20:17
Сообщение #3


Частый гость
**

Группа: Новичок
Сообщений: 84
Регистрация: 4-09-07
Из: Москва
Пользователь №: 30 277



Программа работает, но кол-во пакетов данных передаваемых на host, не совпадает с кол-вом вызовов функции RTDX_write. Подозреваю, что неправильно работает строка while( RTDX_writing != NULL ), которая неправильно отслеживает время реальной отправки пакета по каналу. Из-за этого происходит наложение и потеря одного из них. Как это исправить?
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 01:45
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016