Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Цифровые сигнальные процессоры (DSP) и их применение»

Потеря пакетов данных при передаче через RTDX

Отправлено Degun 27 ноября 2007 г. 16:36


DM642 на evalution board
При передаче данных от target-устройства (evalution board) на host-устройство (PC) с помощью программы приведённой ниже происходит потеря блоков (пакетов) данных. Например в данном случае, от target-а передаются 1000 блоков (один блок данных передаётся за один вызов функции RTDX_write) по 512 байт каждый. Но на host-е принимаются только порядка 100 блоков данных, а остальные 900 блоков где-то теряются по дороге. Есть подозрение, что это происходит из-за того, что процессор работает гораздо быстрее, чем блоки данных успевают передаваться по каналу, из-за этого некоторые пакеты накладываются друг на друга, что и привожит к их потере. По идее строка

while ( RTDX_writing != NULL );

должна предотвращать это, но, видимо, она работает некорректно. В чём здесь дело и как этого избежать? Может быть кто-то сталкивался с подобной ситуацией?


#include "rtdx.h"
#include "stdlib.h"

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

//Packet size and rtdx data bufer
#define RTDX_PACKET_SIZE 512
static char vBuf[RTDX_PACKET_SIZE];

int main()
{
//Set rtdx bufer data
for (int i=0; i // enable the output channel
RTDX_enableOutput( &ochanData );

//infinite loop send data
int BlockCount=1000;
while((BlockCount--)>=0)
{
// check if RTDX channel is ready
while ( RTDX_writing != NULL );
// make sure writes go through
while(!RTDX_write( &ochanData, vBuf, RTDX_PACKET_SIZE ));
}

return 1;
}



Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сколько миллиампер в одном ампере ?:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru