На главную Наши проекты:
Журнал   ·   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) « Первая ... 3 4 [5] 6 7 ...  50 51  ( Перейти к последнему сообщению )  
> Желающим USB под ДОС , Welcome!!!
    А нету ли у кого нибудь описание основных SCSI команд в челевеческом виде?
    с t10.org невозможно что либо прочитать.
      В каком смысле
      Цитата PRT @
      в челевеческом виде
      ?
      Там pdf'ка нормальная вроди, даже оглавление есть :)
      Или ты скачать не можеш?
        Очень уж через ухо все написанно, но нечего, не стакими сталкивались.
        У меня вот такой вопрос: с Флэшкой все нормально, делаю TestUnitReady, даже ReadCapacity работает правильно, а вот с Cardreader-ом проблема. Кроме INQUIRY нечего не хочеть слышать. У меня подозрение, что ещё во время енумерации что-то надо с ним сделать, но пока не поиму что. Мои деиствия:
        1)GetDescriptors
        2)SetAddress
        3)SetConfiguration
        4)Reset MassStorage
        5)GetLUNs
        6)INQUIRY и т.д.
        Кажется в районе 3-его шага надо ему чтото сказать, а может я ошибаюсь и проблема в чем-то другом.
          Ээ..
          Ножет глупый вопрос, но всё же.
          А карта в кардридер вставлена?
          Просто если нету накопителя то сам кардридер только на INQUIRY и GET CAPACITY и отвечает.
          Причём на GET CAPACITY возвращает нулевой размер.
          А вообще от простых флешек ничем не отличается если не экзотика.
          Насчёт экзотики - просто встречалась флэшка (обычная такая флэшка) которая совмещала в себе 2 устройства: хаб с
          одним портом и непосредственно к нему приконекченую флэшку.
          Нафиг такое сделали не знаю - но факт...
          А вообще если можеш запости сюда дескрипторы которые устройство возвращает, может чего интересного заметим.
          И как вариант поставь себе Snoopy Pro - USB монитор, и помониторь обмен под Windows.
          Хотя очень врядли что там отличия будут от обычного Bulk Only USB Mass Storage.
          Плюс посмотри эту ветку поглубже если ещё не смотрел - там другие посты были по USB, может что интересное для себя найдёш. :)
          О, вот они:
          OHCI USB
          Программирование USB в MS-DOS
          нумерация устройств на шине USB
          Блокировка загрузки с USB

          Добавлено
          PS: а план действий у тебя правильный вроди...
            Карта в кардридер вставлена. Сам кардридер нормальный среднестатистический кардридер. Вот его дескрипторы:
            DEVICE
            Length-0x18
            Type-0x1
            BCD-0x110
            Class-0
            SubClass-0
            Protocol-0
            MaxPacket-0x40
            bcdDevice-0x5
            NumConfig-1

            CONFIGURATION
            Length-0x9
            Type-0x2
            TotalLength-0x20
            NumInterfaces-0x1
            ConfigVal-0x1
            iConfig-0
            Attributes-0x80
            MaxPower-0xFA

            INTERFACE
            Length-0x9
            Type-0x4
            InterfaceNumber-0
            AlternateSetting-0
            NumEndpoints-0x2
            InterfaceClass-0x8
            InterfaceSubClass-0x6
            InterfaceProtocol-0x50
            iInterface-0x4

            ENDPOINT 1
            Length-0x7
            Type-0x5
            Address-0x81
            Attributes-0x2
            MaxPacket-0x40
            Interval-0

            ENDPOINT 2
            Length-0x7
            Type-0x5
            Address-0x2
            Attributes-0x2
            MaxPacket-0x40
            Interval-0

            Может SCSI команда есть, вроде Enable LUN, или что нибудь похожее.
              Цитата PRT @
              Может SCSI команда есть, вроде Enable LUN, или что нибудь похожее.

              Да нет - нету ничего такого...
              Просто в командах номер LUN указывается и всё...
                Я сейчас смотрю логи usb snoopy, и вот что удивляет:
                Windows при подключении кардридера после считывания дескрипторов делает SELECT_CONFIGURATION а затем SELECT_INTERFACE. Не поиму что это такое, может вместо SELECT надо SET, но тогда зачем делать SET_INTERFACE.
                Кроме того не делается Reset MassStorage, но зато деваису вместо него посылается странный Setup пакет (RequestType=0, Request=0xFE, Value=0, Index=0, Length=0)
                  А почему Windows вызывает команду READ CAPACITY c opcode-0x23, когда в описании эта команда равна - 0x25?
                    Цитата PRT @
                    А почему Windows вызывает команду READ CAPACITY c opcode-0x23, когда в описании эта команда равна - 0x25?

                    А как ты это определил?
                    Т.е. что 23h - это Get Drive Capacity.
                    В спецификации написано что это Vendor Specific...
                    Сообщение отредактировано: cppasm -
                      Я это определил косвенным путем:
                      во первых команда-0х23 вызывается сразу после Inquiry,
                      во вторых, команда-0х23 в некоторых спецификациях (MMC-2) описана как READ FORMAT CAPACITIES, хотя в SubClassCode русским языком записано значение 6.
                        Ну я даже не знаю...
                        Если хочеш - могу выложить драйвера для Mass Storage под UHCI и OHCI под DOS.
                        Если заработают - значит надо у себя ошибку искать...
                        Плюс выложи логи от проги в аттаче.
                        Запускать ohci.com>ohci.txt и ohci.txt потом сюда приаттач.
                        Просто даже интересно...
                        Прикреплённый файлПрикреплённый файлOHCI.zip (9.77 Кбайт, скачиваний: 200)
                          Лог программы:

                          Detecting OHCI USB Controllers...
                          1 OHCI USB Controller(s) detected

                          OHCI 0: PCI 00-13-0, VID=0E11h, DID=A0F8, MM_BASE=E0004000h, IRQ=11

                          Detecting USB Devices...
                          USB Device not detected.

                          Ни один деваис не распознался, ни флэшка, ни кардридер.
                            Запускал под DOS? EHCI отключён?

                            Добавлено
                            Может там ещё UHCI есть - прога только с OHCI работает...
                              DOS чистый, ver6.22, только OHCI. Matherboard Advantech pcm-5820
                                Цитата PRT @
                                Может SCSI команда есть, вроде Enable LUN, или что нибудь похожее.

                                Вообще-то есть запрос GetMaxLun (Setup transaction A1 FE 00 00 00 00 01 00), на которую устройство отвечает 1 байтом.
                                И в картридере карточка вовсе не обязана отвечать по LUN 0 - надо выбирать, с каким LUN работать.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:
                                Страницы: (51) « Первая ... 3 4 [5] 6 7 ...  50 51


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0968 ]   [ 15 queries used ]   [ Generated: 19.07.25, 21:44 GMT ]