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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> AT91SAM7 & USB, Как разделить процессы загрузки и работы по USB?
aaarrr
сообщение Dec 13 2006, 18:57
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Я неправильно выразился - надо было написать NOP'ов, во множественном числе.

Про разную природу что-то не понял - откуда она возьмется?

Ну да черт с ней, с природой. У механизма синхронизации должно быть вполне определенное максимальное время синхронизации, и на это время вполне можно было бы и тормознуть ядро.
А нам предлагают писать до тех пор, пока данные не совпадут - темнят что-то господа из Атмела.
Go to the top of the page
 
+Quote Post
gladov
сообщение Dec 14 2006, 11:06
Сообщение #17


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Цитата(aaarrr @ Dec 13 2006, 18:57) *
Я неправильно выразился - надо было написать NOP'ов, во множественном числе.

Про разную природу что-то не понял - откуда она возьмется?

Ну да черт с ней, с природой. У механизма синхронизации должно быть вполне определенное максимальное время синхронизации, и на это время вполне можно было бы и тормознуть ядро.
А нам предлагают писать до тех пор, пока данные не совпадут - темнят что-то господа из Атмела.


Может быть и я некорректно выразился про разную природу, но если ядро работает от MAINCLK, то клоки для USB, пройдя через PLL, могут получить некий фазовый сдвиг (кто его знает как там ПЛЛ устроен?) и изменят частоту, а это уже совсем другой клок получится.
А вот с максимальным временем синхронизации я согласен. Оно обязательно должно быть. И писать вечный цикл на ожидание выставления битика мне тоже очень не нравится.
Go to the top of the page
 
+Quote Post
Kitsok
сообщение Dec 14 2006, 16:19
Сообщение #18


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136



Вчера понавтыкал циклов, запустил свой стандартный тестик (REPORT OUT 64 Bytes, once per mSecond), по ощущения (не смейтесь только, не знаю, чем померять реальную пропускную способность wink.gif) стало медленнее.

Буду думать. Брейкпоинты в ISR ставить не хочется, а делать printf из ISRа - вообще страшно. А так можно было бы посмотреть, чем на выходе из цикла i равно, и сделать вывод о целесообразности.

offTopic: Прикрутил Feature-report, от девайса до хоста все проходит, правда, добавляется вначале лишний байт (==0), а вот в обратную сторону - нет. Причем отвал идет по таймауту (виндовая ошибка номер 121). И никак не вспомню, где я видел описание, как должен реагировать девайс на SET_REPORT. Более того, никак не вкурю, чем отличается виндовое HID_SetFeature от WriteFile... Может мне реквест не на тот пайп приходит?
Go to the top of the page
 
+Quote Post
gladov
сообщение Dec 14 2006, 16:29
Сообщение #19


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



Цитата(Kitsok @ Dec 14 2006, 16:19) *
Буду думать. Брейкпоинты в ISR ставить не хочется, а делать printf из ISRа - вообще страшно. А так можно было бы посмотреть, чем на выходе из цикла i равно, и сделать вывод о целесообразности.


А зачем printf? Можно ведь, например, настроить DBGU (или УАРТ) с PDC, и в прерывании УСБ только скопировать куда-нть i и пнуть PDC. По времени совсем некритично, зато легко можно узнать любые интересующие значения любых переменных.
Go to the top of the page
 
+Quote Post
Kitsok
сообщение Dec 14 2006, 18:11
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136



Цитата(gladov @ Dec 14 2006, 16:29) *
А зачем printf? Можно ведь, например, настроить DBGU (или УАРТ) с PDC, и в прерывании УСБ только скопировать куда-нть i и пнуть PDC. По времени совсем некритично, зато легко можно узнать любые интересующие значения любых переменных.


Уууу wink.gif PDC пока для меня сложно, но за идею спасибо wink.gif
Хотя я не понял. Ведь PDC может скопировать массив данных в массив данных, т.е. потом - обработчик UARTD (DBGU), кольцевой буффер и т.д. и т.п.?
Go to the top of the page
 
+Quote Post
Kitsok
сообщение Dec 19 2006, 01:49
Сообщение #21


Местный
***

Группа: Свой
Сообщений: 211
Регистрация: 9-11-06
Пользователь №: 22 136



Батюшки светы, какое чудо этот PDC!!!

Переделал работу ADC на через PDC (было - через прерывания), кода меньше, геммороя с CONTEXT_SWITCH меньше, настраивается ну прям как в детском саду, и т.д. и т.п.

Спасибо большое, что зародили во мне сомнение wink.gif


P.S. Боялся всякого DMA с 11 класса, когда возникла необходимость писать драйвер дисковода для PS/2 с использованием DMA smile.gif С тех пор - ни-ни, до сегодняшнего дня wink.gif
Go to the top of the page
 
+Quote Post
_4afc_
сообщение Dec 19 2006, 10:21
Сообщение #22


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

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



Цитата(Master @ Dec 11 2006, 18:35) *
У меня возникло желание разнести процессы загрузки с помощью SAM-Prog (=SAM-BA по USB) и работы своего софта по разным подключениям к компу. Но пока нет идей, а также достаточных знаний для решения данной проблемы.


Возвращаясь к топику - хотелось бы напомнить, что в WindowsXP драйвера ставятся на конкретный USB порт. Посему достаточно подключить своё устройство после SAMBA прошивки в другую дырку.

Сам так делал - взял две верёвки и тестил свою прогу не меняя VID & PID.

Сообщение отредактировал _4afc_ - Dec 19 2006, 10:23
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 08:42
Рейтинг@Mail.ru


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