На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Перед отправкой сообщения внимательно прочтите правила раздела!!!
1. Запрещается обсуждать написание вирусов, троянов и других вредоносных программ!
2. Помните, что у нас есть FAQ раздела Assembler и Полезные ссылки. Посмотрите, возможно, там уже имеется решение вашего вопроса.

3. Настоятельно рекомендуем обратить особое внимание на правила форума, которые нарушаются чаще всего:
  3.1. Заголовок темы должен кратко отражать её суть. Темы с заголовками типа "Срочно помогите!" или "Ассемблер" будут отправляться в Корзину для мусора.
  3.2. Исходники программ обязательно выделяйте тегами [code]...[/code] (одиночные инструкции можно не выделять).
  3.3. Нежелательно поднимать старые темы (не обновлявшиеся более года) без веской на то причины.

Не забывайте также про главные Правила форума!

Добро пожаловать и приятного вам общения!!! ;)
 
Модераторы: Jin X, Qraizer
Страницы: (51) « Первая ... 6 7 [8] 9 10 ...  50 51  ( Перейти к последнему сообщению )  
> Желающим USB под ДОС , Welcome!!!
    Цитата PRT @
    Попробовал последнюю програму

    О, это уже лучше :)
    Как я понял она не повисла?
    Теперь вопрос только один - а устройство подключено было?
    Потому что судя по состоянию портов устройства нет - установлен только бит PPS (Port Power Set).
    Правда она дескрипторы и так бы не прочитала.
    Предположительно рабочую сделаю к понедельнику...
      Цитата cppasm @
      а устройство подключено было?

      Сдаётся мне, что тут ещё EHCI может своё влияние оказывать.
      Если почитать его спецификацию, то при включенном EHCI физические порты отключаются от UHCI/OHCI и подключаются к EHCI. При выключенном (по умолчанию) - сидят на старом контроллере.
      Если в данном компьютере BIOS или драйвер включают EHCI, то на UHCI/OHCI не будут обнаруживаться устройства.
        Устроиство конечно было подключено, а EHCI здесь и не пахнет. Прикол в том, что программа выдет дескрипторы только при загружженном usbaspi.sys.
        А у меня возникла новая проблема: во время любой ошибки (STALL, NAK ...) комп виснет!!!
          Цитата PRT @
          Устроиство конечно было подключено, а EHCI здесь и не пахнет. Прикол в том, что программа выдет дескрипторы только при загружженном usbaspi.sys.

          Ну это мне ясно...
          Там просто у порта enable не ставится почему-то.
          Но вот почему у порта не стоит бит что устройство подключено мне не ясно...
          Я проверяю так:

          ресет контроллера
          читаю количество портов
          потом для каждого порта если установлен бит CurrentConnectStatus работаю с устройством.

          а тут он почему-то не установлен :wacko:
          а у тебя как детект подключённого устройства происходит7
            Детект подключённого устройства происходит также, может дело в ресете контроллера?
              Может и с ресетом проблемы...
              Блин, вообще ерунда какая-то :(
              Стал со своим NEC OHCI шаманить - выяснил что у него вообще SetPortEnable не работает. %)
              PortEnable выставляется только совместно с Reset'ом...
              Попробуй ещё эту плз, может я хоть что-то в логах увижу...
              Мне вообще не понятно почему состояние порта показывает что устройства нету.

              Добавлено
              Вот мой ресет:

              ExpandedWrap disabled
                    // Reset HC, enter UsbReset state.
                    writed(hc[i].base+0x04,0x00); delay(10);
                    // Reset HC, HC enters UsbSuspend state.
                    writed(hc[i].base+0x08,0x01);
                    // Wait for reset completition.
                    for(k=0;k<50 && (readd(hc[i].base+0x08) & 0x01);k++) delay(1);
                    // Set HCCA physical address.
                    writed(hc[i].base+0x18,hcca); hcca+=0x100;
                    // Set Control head ED.
                    writed(hc[i].base+0x20,ED);
                    // Set Bulk head ED.
                    writed(hc[i].base+0x28,ED);
                    // Disable all HC interrupts.
                    writed(hc[i].base+0x14,0xFFFFFFFF);
                    // Clear all interrupt status bits.
                    writed(hc[i].base+0x0C,0xFFFFFFFF);
                    // Enable interrupt (SMI) on ownership change.
                    writed(hc[i].base+0x10,0xC0000000);
                    // Start Host Controller.
                    // Set UsbOperational state.
                    // Disable Periodic List, Isochronous List,
                    // Control List and Bulk List processing.
                    writed(hc[i].base+0x04,0x80);
                    // Set Frame Interval.
                    writed(hc[i].base+0x34,0x27792EDF);
                    // Set Periodic Start (90%).
                    writed(hc[i].base+0x40,0x00002A2F);
                    // Root Hub ports are power switched.
                    // All ports are powered at the same time.
                    writed(hc[i].base+0x48,readd(hc[i].base+0x48) & 0xFFFFFCFF);
                    // Turn on power to all ports.
                    writed(hc[i].base+0x50,0x10000);
                    // Wait Power On to Power Good time.
                    delay((readd(hc[i].base+0x48)>>23) & 0x1FE);


              Добавлено
              Думаю может в последней задержке проблема.
              Там регистр странный какой-то: RW для драйвера и ReadOnly для контроллера.
              И я пробовал - туда ноль успешно пишется...
              Хотя у меня после сброса там 30 мс.
              Прикреплённый файлПрикреплённый файлOHCI.zip (10.43 Кбайт, скачиваний: 114)
                Кстати вот лог от моей флэшки.
                Команды 23h там нет, есть 25h...
                WinXP SP2 OEM RU, флэшка Transcend 1Gb, драйвера штатные.
                Прикреплённый файлПрикреплённый файлtranscend.zip (71.89 Кбайт, скачиваний: 144)
                  Последняя версия работает!!! но после создания логов опять виснет.
                  Спасибо за лог от флэшки, буду смотреть.
                  Прикреплённый файлПрикреплённый файлlog.zip (0.84 Кбайт, скачиваний: 179)
                    Это радует.
                    Как я и думал в регистре HcRhDescriptorA в поле PowerOnToPowerGoodTime задержка прописана была всего 2мс...
                    Попробуй эту, может не повиснет...
                    Только запусти сначала с выводом на экран, если не повиснет, то потом уже логи сделаеш.
                    Спасибо что помогаеш.
                    Прикреплённый файлПрикреплённый файлOHCI.zip (9.89 Кбайт, скачиваний: 118)
                      Если повиснет то сделай ещё логи с этой версией.
                      Я тут добавил запись в лог деконфигурирование контроллера...
                      Прикреплённый файлПрикреплённый файлOHCI.zip (10.51 Кбайт, скачиваний: 104)
                        Обе не зависли, но производительность компа после выхода падает катастрофически.
                        Вторая программа не обноружила деваис.
                        Прикреплённый файлПрикреплённый файлlog.zip (1.04 Кбайт, скачиваний: 159)
                          Цитата PRT @
                          Вторая программа не обноружила деваис.

                          Та блин пофиксить забыл :( Но это ерунда.
                          Цитата PRT @
                          но производительность компа после выхода падает катастрофически

                          А в чём это выражается?
                          В смысле как ты определил что в DOS производительность упала.
                          Может связано с тем что я FlatRealMode использую, хотя врядли...
                          А как ты доступ к регистрам OHCI получаеш?
                          PM, DPMI, или как у меня Flat Real Mode?
                          Ещё в принципе может быть связано с тем что я дескрипторы передачи размещаю после 16Мб, ну ясное дело у Himem.sys разрешения не спрашиваю.
                          Может ему или smartdrv что-то не нравится...
                          Ради эксперимента попробуй ещё эту...
                          Сообщение отредактировано: cppasm -

                          Прикреплённый файлПрикреплённый файлOHCI.zip (9.86 Кбайт, скачиваний: 116)
                            заработало!!!
                            А в чем был прикол когда комп замедлился (реакция на клавишы была с секундным опозданием, вход/выход в NortonComander длился 5-10 секунд, но зато на Ctrl-Alt-Del реагировало мгновенно).
                            Можно вернутся к изначальной проблеме? Сделаешь к этой программе Read Capacity? Докажем всему миру что 23h это не 25h!!!
                              Цитата PRT @
                              А в чем был прикол когда комп замедлился

                              Прикол был в прерываниях...
                              Я при деконфигурировании возвращал управление SMM.
                              Делал UsbReset, потом разрешал прерывания и вызывал OwnershipChange.
                              Это чтобы снова включить в BIOS функции работы с USB для USB флэшек и мышей если BIOS это поддерживает.
                              Но как видно из логов SMM не отвечает - может нет поддержки, или она выключена.
                              А я потом просто выходил из программы.
                              Но в статусе прерываний бит OwnershipChangeInterrupt так и оставался установленным - BIOS ведь его не обработала.
                              И начинали сыпаться прерывания - заглушка которую BIOS поставил их в контроллере прерываний глушит, а в OHCI нет.
                              В последнем варианте я просто отключил возврат управления SMM, но это меня не устраивает (это ради эксперимента было).
                              Попробуй эту - здесь если в течении 50мс SMM не отвечает я прерывания запрещаю и статус сбрасываю.

                              Цитата PRT @
                              Можно вернутся к изначальной проблеме? Сделаешь к этой программе Read Capacity? Докажем всему миру что 23h это не 25h!!!

                              К этому всё шло :)
                              Если всё заработает как надо завтра будет ReadCapacity - у меня с собой исходников нету просто...
                              PS: а устройство в логах это кардридер? Просто у него питание не по шине стоит, а я таких флэшек не видел ;)
                              Сообщение отредактировано: cppasm -

                              Прикреплённый файлПрикреплённый файлOHCI.zip (9.9 Кбайт, скачиваний: 120)
                                Да, логика вразумительная, а программа работает корректо. Устроиство - кардридер.
                                1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (51) « Первая ... 6 7 [8] 9 10 ...  50 51


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0449 ]   [ 14 queries used ]   [ Generated: 21.07.25, 16:36 GMT ]