alexunder 4 23 июня, 2015 Опубликовано 23 июня, 2015 · Жалоба Добрый день. пытаюсь сделать USB-UART устройство на базе CY7C65213, есть фирменный кит от сайпресса. В моей программе (msvs c++ 2008) успешно получаю параметры и конфигурацию usb-устройства, открываю UART, работаю с GPIO, отправляю данные через UART с помощью CyUartWrite(). Если сделать loop-back, т.е. замкнуть RX и TX, то успешно принимаю отправленные данные посредством библиотечной функции CyUartRead(). Но если разорвать Loop-back, т.е. входной буфер UARTа будет пуст и вызвать CyUartRead(), то программа "вылетает" с сообщением о неправильной структуре кучи. При этом грешить на неправильную инициализацию буфера и других параметров нельзя, т.к. функция отрабатывает успешно если в порт поступают данные (случай с лупбаком). В общем, всю голову сломал, не могу найти причину. На родном форуме cypress тишина. Это библиотека такая кривая или мои руки? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
alexunder 4 25 июня, 2015 Опубликовано 25 июня, 2015 · Жалоба На всякий случай оставлю это здесь. Мои изыскания показали, что описанная выше ошибка не возникает, если работать со старой версией cyusbserial.dll (объем файла ~39кБайт вместо ~45 кБайт в новой, доступной сейчас на сайте). Версию библиотеки можно узнать с помощью CyGetLibraryVersion(), отличаются они только номерком патча: хорошая (старая) имеет патч №74, плохая - №80. А еще вот сайпресовские индусы ответили, что в скором времени исправят баг: Hello Alexunder, We have seen similar issue and this is issue with our cyusbserial library. I will check and provide you modified binaries which has fix. However, we will update our library including this fix in our next release. Thanks, Haneesh Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться