TSURKOV
Участник-
Постов
38 -
Зарегистрирован
-
Посещение
Репутация
0 ОбычныйИнформация о TSURKOV
-
Звание
Участник
Контакты
-
ICQ
Array
-
Спасибо за информацию. Уточняю данные по проекту. Работаю с системой на кристале HPS - ARM, Cyclone-V, ОС linux - сборка ядра Angstrom v2013.12 - Kernel 3.10.31 - ltsi - 02861 - g801a40f Прерывание хочу обрабатывать от собственного модуля, подключаемого к HPS по avalon шине (вроде того что в ссылке которую привел в начале)
-
нашел статью с примером https://zhehaomao.com/blog/fpga/2014/05/24/sockit-10.html не получается подключить библиотеки module.h nit.h kernel.h fs.h ioport.h sched.h даже не могу найти заголовочные файлы на диске. Слышал что эти библиотеки входят в состав какой то другой обобщающей библиотеки. Прошу помощи !!!
-
Алгоритм нормировки для ПЛИС
TSURKOV опубликовал тема в Работаем с ПЛИС, области применения, выбор
Здравствуйте Коллеги. Проектирую фазовый детектор. Требуется нормировать отчеты сигнала относительно максимума. Подскажите какой наиболее эффективный алгоритм лучше использовать для реализации на ПЛИС, в проекте с частатой дискритехации 100 Мгц. Спасибо. -
Алгоритм нормировки для ПЛИС
TSURKOV опубликовал тема в Алгоритмы ЦОС (DSP)
Здравствуйте Коллеги. Проектирую фазовый детектор. Требуется нормировать отчеты сигнала относительно максимума. Подскажите какой наиболее эффективный алгоритм лучше использовать для реализации на ПЛИС, в проекте с частатой дискритехации 100 Мгц. Спасибо. -
Спасибо. Я тоже такую штуку в интернете нашел. Смутило что на плате AVRISP стоит mega128 а в списке утилиты такой схемы нет.
-
Здравствуйте. Подскажите как оживить программатор AVRISP mkII - он завис в режиме обновления и теперь не удается к нему подключиться! Можно его оживить? и как ? или уже все?
-
Я тоже обратил внимание на выход к шине. но в таблице каналов и потоков не обнаружил FSMC интерфейса !?
-
Уважаемые коллеги. Хотел уточнить, правильно ли я понимаю ситуацию, что stm32f207 не имеет возможности работать по DMA в режиме внешняя память-> внешняя память !?
-
Уважаемые знатоки lwip стека. Подскажите пожалуйста как грамотно контролировать tcp соединение, как его перезапустить. Насколько я понимаю для этой цели используется функция poll, она периодически вызовется, но в момент ее вызова я не наблюдаю отправки каких либо сообщений в сторону сервера. О закрытии соединения меня информирует флаг (es->pcb->state == CLOSE_WAIT) находящийся в функции обработки принятых сообщений, по нему, пытаюсь закрывать клиента, и потом пере запускать (где то пока подглючивает). А как быть если сервер просто завис в установленном соединении, а потом его перезапустили? Как определить его зависание на stm ? В таком случае мне нужно, определить сбой соединения и установить новое соединение, значит я должен периодически посылать запрос серверу (tcp_connect) до момента подключения?
-
Еще раз большое спасибо. ;) Все отлично заработало, проблема оказалась в программе на ПК.
-
Интересно, а могу я на уровне пользователя lwip стека, убедится, что переданное мной сообщение получено, и только после передавать новое. Где и какие это могут быть флаги!?
-
Помогло. Но правда в другом. После вызова tcp_write стал делать вызов tcp_output (подсмотрел в Вашем коде). Скорость возросла более чем в два раза, местами до полу мегабайта дотягивает. Но этого все равно маловато, видимо это не основная причина, попрежнему много коллизий и перезапросов как с одной так и с другой стороны. Когда тестирую две программы на PC все передается чисто, равномерно, с процессором из за перезапросов все дергается. Периодически отправляет несколько раз один и тот же пакет данных. Буду думать дальше. Спасибо за помощь.
-
скриншот wareshark. Такое впечатление, что процессор не получает некоторые подтверждения от PC и повторно шлет пакеты. Что и снижает общую скорость.
-
Насколько я понимаю подтверждение tcp_recived это для случая когда процессор принимает. Во всяком случае я так делал. err_t tcp_client_recv(void *arg, struct tcp_pcb *tpcb, struct pbuf *p, err_t err) { // обработка принятого пакета tcp_recved(tpcb,p->tot_len); pbuf_free(p); } Для случая передачи я просто вызываю calback функцию tcp_sent(ptcp_pcb, tcp_client_sent) Хотя ее смысл мне не понятен (функцию взял из примера) в if программа не заходит. err_t tcp_client_sent(void *arg, struct tcp_pcb *tpcb, u16_t len) { struct tcp_client_struct *es; LWIP_UNUSED_ARG(len); es = (struct tcp_client_struct *)arg; if(es->p_tx != NULL) { tcp_client_send(tpcb, es); } return ERR_OK; } вообще мой обработчик передачи крутится в основном цикле и выглядит примерно так void SendDataHandler(void) { // запаковка данных if(tcp_sndbuf(ptcp_pcb) >= msg_len) { err = tcp_write(ptcp_pcb,&tx_tcp_msg,msg_len,1); tcp_sent(ptcp_pcb, tcp_client_sent); } } если err == ERR_OK значит данные переданы.