Добрый день !
Проблема: при чтении данных с диска (в его качестве используется SD CARD) проект подвисает, Может подвиснуть сразу же после начала чтения, а может и не сразу, а прочитав пару сотен MBytes. Если же в функции, читающей данные с карточки и инициирующей передачу по USB, выключить чтение с карточки и вместо данных с нее писать в буфер конечной точки, например, 0, 1, 2, 3, 4 и т.п., то все работает идеально.
И вот еще что. Ясно, что при чтении данных с диска система может запрашивать блоки разной длины. Проект разбивает такие запросы на блоки длиной <= 4096 байт и по мере поступления IN - пакетов от машины подчитывает эти блоки с карточки. Так вот, замечено, что если эти, всегда разной длины, запросы игнорировать, а вместо этого читать с карточки всегда одно и то же кол-во байтов (т.е., секторов; я проходил все значения, от 1 до 8 секторов) то проект тоже работает отлично. Естественно, с диска читается полная околесица, но это не важно - мне лишь бы с него что-то читалось, для проверки.
И вот я думаю, это проблема проекта или моей самодельной платки с USB HS на борту ? Из того, что я описал, выходит, что дело все-таки в проекте. Кто-нибудь пробовал этот проект в работе ?
Вот он:
http://www.st.com/internet/com/SOFTWARE_RE...-device_lib.zipВнутри:
\usb_device_examples\msc\mdk_arm