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

 
 
> Mass Storage (Bulk Only) с несколькими LUN [solved], Винда видит только LUN=0 и не видит остальных
brag
сообщение Mar 23 2011, 13:56
Сообщение #1


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

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



Доброе время суток!
Есть USB FULL SPEED девайс на STM32F105, на нем 2 накопителя и их оба нужно видеть в Винде(2003,XP) (как 2 диска)
Вроде все сделал по спецификации (на Get Max Lun возвращаю 1), но обращения идут только к LUN 0 (CBW.LUN=0), и сам по себе диск 0 видится и отлично работает. сколько бы лунов не возвращал в Get Max Lun поведение одинаковое - винда в упор не хочет обеащатся к другим лунам, кроме 0.
Есть кардридер, правда HI SPEED, сделал так, чтобы мой девайс отвечал на SCSI команды так же как и он, и результата тоже никакого..
Есть ли у кого-то любой работающий пример Mass Storage с 2 или больше LUN-ами?
Вот лог с UsbTrace кардридера [attachment=54656:UTLog.7z]
A вот мой [attachment=54657:UTLogME.7z]
(Открывать в firefox, explorer загибается)
В ридере после Inquiry идет 3 запроса ReadFormatCapacities, затем пошел Inquiry для LUN=1
А на мой девайс после таких же 3х запросов ReadFormatCapacities (с такаими же ответами) идут куча других запросов но все для LUN=0 и ни одного для других лунов...
Сомневаюсь, что дело в FullSpeed/HiSpeed или в VID/PID..
Драйвера тоже пробовал сносил, тоже не помогло
W интернете тоже ничего не нахожу подобного. с одним диском куча примеров, а с 2+ не могу найти...

Уже и все дескрипторы скопировал (кроме Endpoint, там размер 512 байт у меня 64)
и всеравно эффекта нету

А в FreeBSD нормально увиделось 2 диска... Скорее всего винда не умеет видеть несколько LUN-ов у Full Speed устройствах...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
brag
сообщение Mar 23 2011, 14:22
Сообщение #2


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

Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046



А можете кусочек кода дать посмотреть?
На моем девайсе в Linux/BSD все отлично работает, а на винде отлично работает только первый диск, второго вообще не видно и никаких обращений к нему...

вот мой код. там заглушка - везде при обращении к диску возвращается MEDIUM NOT PRESENT
[attachment=54670:msc.7z]
ну и сам драйвер usb для stm32
[attachment=54671:drv.7z]

если мне не поможет, то мож кому пригодится в качестве hello-word ,тк OTG в stm32 слабо документировано и примеров в интернете нету, есть только их большая глючная либа sm.gif
Go to the top of the page
 
+Quote Post
galjoen
сообщение Mar 23 2011, 15:24
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



С кодом разбираться сейчас некогда, да и вообще я давно уже этими делами не занимаюсь - заново влезать нужно, а ох как не хочется (лень).
НО сейчас попробовал в своём старинном проекте LUN=1 поставить и перетранслировать (благо и тот старинный девайс и проект под рукой) - записал программу в процессор, и всё сразу заработало, появилось 2 одинаковых диска. И то, что у них одинаковые имена диска и номера - никак винду не смутило (правда у меня диски защищены от записи с компа).
Винда - самая простяцкая XP.
Попробовал запускать exe-шники с обоих этих дисков одновременно (физически это один файл) - всё запускается, никакой ошибки совместного доступа нет (с одного 2 раза не запустишь - специально так сделано).
В общем, вывод, что это косяк вашего ПО.
Go to the top of the page
 
+Quote Post



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

 


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


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