ursa 0 31 октября, 2010 Опубликовано 31 октября, 2010 · Жалоба Загрузил прошивку CDC в камень через USB Bootloader, запустил, установил дрова из директории проекта, открыл терминал, посылал символы и получал эхо. Ножки TXD и RXD на микроконтроллере замкнул. Выкинул ввод\вывод на UART, перелопатил под свои задачи - LCD, ADC. CDC работает. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 2 ноября, 2010 Опубликовано 2 ноября, 2010 · Жалоба Связался с саппортом Keil, они сказали что действительно пример НЕ работает на Windows 7, их команда сейчас работает над поиском и устранением ошибки. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
crastin 0 21 марта, 2011 Опубликовано 21 марта, 2011 · Жалоба Я по поиску сюда пришел. Я не понял что вы вообще переделывали для отправки данных через CDC. Пример из Keil? Я такое же нашел в LPCExpresso IDE раньше работало нормально. Сейчас виснет (CDC). Если есть другой пример, Может ли кто-нибудь его выложить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 21 марта, 2011 Опубликовано 21 марта, 2011 · Жалоба CDC виснет при включенной оптимизации. Т. к. все переменные, асинхронно меняемые в прерываниях не объявлены volatile. Объявил как положено - всё заработало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
crastin 0 21 марта, 2011 Опубликовано 21 марта, 2011 · Жалоба А как отключить оптимизацию? Убрать -O из командной строки? Нашел что такое -O. Но все равно volatile нужно объявлять все переменные в файле с драйвером USB или где? Просто тот же пример у меня работал еще полгода назад. Повторюсь я пишу в lpcexpresso. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
IgorKossak 0 21 марта, 2011 Опубликовано 21 марта, 2011 · Жалоба usbhw.c - в функции delay() внутрь цикла вставил __asm__ __volatile__ ("nop"); иначе цикл выкидывался. usbcore.c и serial.c (и соотв. *.h) - все (чтобы не долго думать) глобальные переменные объявил volatile Вроде бы больше ничего. Компилирую в среде Eclipse тулчейном Code Sourcery Lite. Оптимизация -Os Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
crastin 0 22 марта, 2011 Опубликовано 22 марта, 2011 · Жалоба О_о Все заработало. Большое спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
slawer 0 27 октября, 2011 Опубликовано 27 октября, 2011 · Жалоба Здравствуйте, столкнулся со следующей непонятной мне ситуацией. Пример USBCDC для LPC1343 для Keil работает как и положено, то есть при замыкании линий TxD и RxD приходит эхо через виртуальный порт. Переделываю его немного, следующим образом: высылаю пакет через UART отправляю с компа через виртуальный порт пакет и возвращаю его копию назад (задействован только USBCDC) Таким образом, в моем понимании у меня два независимых порта, по каждому из которых ведется свой опрос, однако при замыкании линий TxD и RxD, наблюдаю как к эхо-пакету по возвращеному через USBCDC присоединяется весь пакет, который я выслал через UART!!! Пытался разобраться в коде примера, но мало понимаю как работает USBCDC, там инициализируется виртуальный порт. Так может именно это каким то образом и соединяет USB И Serial между собой. Буду благодарен за любую помощь, спасибо.. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться