реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Вопрос по примеру BasicUSB для SAM7s64, Почему-то не выходит из режима конфигурирования?
ex51
сообщение Jun 15 2006, 07:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 22-06-04
Из: Российская Империя
Пользователь №: 90



Работаю в ИАР 4.40 через Виглер.

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

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

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

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

В чём может быть причина не пойму?
Может я чего-то не понимаю в работе самого USB?
Go to the top of the page
 
+Quote Post
Master
сообщение Jun 15 2006, 08:31
Сообщение #2


Частый гость
**

Группа: Новичок
Сообщений: 170
Регистрация: 26-05-05
Из: Москва
Пользователь №: 5 405



Цитата(ex51 @ Jun 15 2006, 10:52) *
...
В чём может быть причина не пойму?
Может я чего-то не понимаю в работе самого USB?
Раскомментируйте "дефайник":
Код
//#define USART_COM
и подцепите драйвер atm6124.sys после обнаружения устройства в виндах, и точка останова сработает.
Go to the top of the page
 
+Quote Post
ex51
сообщение Jun 15 2006, 09:39
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 26
Регистрация: 22-06-04
Из: Российская Империя
Пользователь №: 90



[/quote]Раскомментируйте "дефайник":
Код
//#define USART_COM
и подцепите драйвер atm6124.sys после обнаружения устройства в виндах, и точка останова сработает.
[/quote]
Попробовал, раскомментировал.
То же самое!
Устройство обнаруживается. Драйвер устанавливается(виртуального модема).
Передача с терминала на терминал идет.
Но на точку останова всё равно не выходит.

Не пойму как мне остановить программу по окончанию получения пакета данных по USB?
Go to the top of the page
 
+Quote Post
AVR
сообщение Jun 15 2006, 12:46
Сообщение #4


фанат Linux'а
*****

Группа: Свой
Сообщений: 1 353
Регистрация: 23-10-05
Из: SPB.RU
Пользователь №: 10 008



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


--------------------
Go to the top of the page
 
+Quote Post
beer_warrior
сообщение Jun 15 2006, 13:14
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 065
Регистрация: 8-10-05
Из: Kiev, UA
Пользователь №: 9 380



Пресловутый BasicUSB им и является - готовая болванка USBbased решения.

ИМХО вопрос надо включать в FAQ.


--------------------
Вони шукають те, чого нема,
Щоб довести, що його не існує.
Go to the top of the page
 
+Quote Post
junkl
сообщение Apr 20 2007, 14:04
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 69
Регистрация: 12-10-05
Из: Калуга
Пользователь №: 9 539



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


Извините за глупый вопрос, но что это значит: "подцепите драйвер atm6124.sys после обнаружения устройства в виндах"? Как это сделать?
Go to the top of the page
 
+Quote Post
cebotor
сообщение Apr 20 2007, 14:21
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 135
Регистрация: 6-04-07
Из: Бронницы
Пользователь №: 26 809



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

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

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

Заранее прошу прощения если я дезинформирую, но по моему опыту:
В иаре (в других не пробовал), не смог добиться хоть какой то отладки кода с USB.
Пришел к тому , что зашиваю ИАРом , потом ресет платы (причем если через пресловутый H-JTAG, то два раза подряд), только потом устройтво проходит этот самый IsConfigured.
естественно после всех этих сбросов, никакого дебага JTAGом больше нет ....
может кто нибудь и мне заодно объяснит в чем причина ?


--------------------
если еррата пуста - это не хорошо а плохо
Go to the top of the page
 
+Quote Post
Dron_Gus
сообщение Apr 21 2007, 02:00
Сообщение #8


Профессионал
*****

Группа: Свой
Сообщений: 1 202
Регистрация: 9-01-05
Из: Санкт-Петербург
Пользователь №: 1 861



Код с USB нормально рабтает под отладчиком. Проверенно. Если есть точки останова в прерываниях, проверьте что AIC в Protected Mode, а то будете онные терять. Так же не советую ставить точки останова по приему данных, но до того, как процессор отослал подтверждение и в тому подобных случаях.


--------------------
Если сверху смотреть, то сбоку кажется, что снизу ничего не видно.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 03:54
Рейтинг@Mail.ru


Страница сгенерированна за 0.01384 секунд с 7
ELECTRONIX ©2004-2016