Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вопрос по примеру BasicUSB для SAM7s64
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
ex51
Работаю в ИАР 4.40 через Виглер.

Ставлю точку останова на строку:
length = pCDC.Read(&pCDC, data, MSG_SIZE);
и отладчик туда никогда не попадает!

выкинул весь цикл и зменил на:
while(!pCDC.IsConfigured(&pCDC));
while(1); <- поставил точку останова
тоже не останавливается.

Думал что виноват Виглер - но похоже что нет.
Пытаюсь зажечь в этом месте светодиод - то же не загорается.
То есть такое ощущение что он крутится внутри функции IsConfigured
и никогда из нее не выходит.

Хотя когда я принудительно останавливаю программу после детектирования виндой USB устройства и смотрю сначение pCdc->currentConfiguration то оно равно 1.

В чём может быть причина не пойму?
Может я чего-то не понимаю в работе самого USB?
Master
Цитата(ex51 @ Jun 15 2006, 10:52) *
...
В чём может быть причина не пойму?
Может я чего-то не понимаю в работе самого USB?
Раскомментируйте "дефайник":
Код
//#define USART_COM
и подцепите драйвер atm6124.sys после обнаружения устройства в виндах, и точка останова сработает.
ex51
[/quote]Раскомментируйте "дефайник":
Код
//#define USART_COM
и подцепите драйвер atm6124.sys после обнаружения устройства в виндах, и точка останова сработает.
[/quote]
Попробовал, раскомментировал.
То же самое!
Устройство обнаруживается. Драйвер устанавливается(виртуального модема).
Передача с терминала на терминал идет.
Но на точку останова всё равно не выходит.

Не пойму как мне остановить программу по окончанию получения пакета данных по USB?
AVR
Извините за оффтоп (не пинайте сильно, я нуб):
Существуют ли библиотеки функций для работы с USB, чтобы нужно было лишь только передать список желаемых параметров: скорость, режим передачи и прочие. И далее работать в стиле USB_Device.SendData и USB_Device.ReadData ...
т.е. как с обыкновенным COM портом...
beer_warrior
Пресловутый BasicUSB им и является - готовая болванка USBbased решения.

ИМХО вопрос надо включать в FAQ.
junkl
Цитата(Master @ Jun 15 2006, 09:31) *
Раскомментируйте "дефайник":
Код
//#define USART_COM
и подцепите драйвер atm6124.sys после обнаружения устройства в виндах, и точка останова сработает.


Извините за глупый вопрос, но что это значит: "подцепите драйвер atm6124.sys после обнаружения устройства в виндах"? Как это сделать?
cebotor
Цитата(ex51 @ Jun 15 2006, 10:39) *
Раскомментируйте "дефайник":
Код
//#define USART_COM
и подцепите драйвер atm6124.sys после обнаружения устройства в виндах, и точка останова сработает.

Попробовал, раскомментировал.
То же самое!
Устройство обнаруживается. Драйвер устанавливается(виртуального модема).
Передача с терминала на терминал идет.
Но на точку останова всё равно не выходит.

Не пойму как мне остановить программу по окончанию получения пакета данных по USB?

Заранее прошу прощения если я дезинформирую, но по моему опыту:
В иаре (в других не пробовал), не смог добиться хоть какой то отладки кода с USB.
Пришел к тому , что зашиваю ИАРом , потом ресет платы (причем если через пресловутый H-JTAG, то два раза подряд), только потом устройтво проходит этот самый IsConfigured.
естественно после всех этих сбросов, никакого дебага JTAGом больше нет ....
может кто нибудь и мне заодно объяснит в чем причина ?
Dron_Gus
Код с USB нормально рабтает под отладчиком. Проверенно. Если есть точки останова в прерываниях, проверьте что AIC в Protected Mode, а то будете онные терять. Так же не советую ставить точки останова по приему данных, но до того, как процессор отослал подтверждение и в тому подобных случаях.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.