Alex11 6 29 октября, 2020 Опубликовано 29 октября, 2020 · Жалоба Мы долго боролись с подобным сценарием, победить удалось только отключением диска. Без этого все идет из кэша, сбросить его не удалось. А чем Вам сериальник не угодил? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Immortal_Buka 0 29 октября, 2020 Опубликовано 29 октября, 2020 (изменено) · Жалоба эмулировать не флэшку, а кардридер, или сд-ром? Или как в CMSIS-DAP сделать. Изменено 29 октября, 2020 пользователем Immortal_Buka Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 29 октября, 2020 Опубликовано 29 октября, 2020 · Жалоба 7 hours ago, Alex11 said: Мы долго боролись с подобным сценарием, победить удалось только отключением диска. Без этого все идет из кэша, сбросить его не удалось. А чем Вам сериальник не угодил? да всем угодил, работает, драйверов не просит, но просто с файлом работать немного проще чем с последовательным портом, особенно из всяких mathematica, mathlab,... 32 minutes ago, Immortal_Buka said: эмулировать не флэшку, а кардридер, или сд-ром? Или как в CMSIS-DAP сделать. они не кэшируются? а что именно в cmsis-dap сделано? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 53 29 октября, 2020 Опубликовано 29 октября, 2020 · Жалоба 7 часов назад, _pv сказал: они не кэшируются? В винде флешки не кэшируются, это сделано для того, чтобы можно было вытащить ее не повредив данные. Кэширование можно включить принудительно, скорость будет выше, но надо постоянно жать на безопасное извлечение. Как-то так... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 29 октября, 2020 Опубликовано 29 октября, 2020 · Жалоба 2 hours ago, mantech said: В винде флешки не кэшируются, это сделано для того, чтобы можно было вытащить ее не повредив данные. Кэширование можно включить принудительно, скорость будет выше, но надо постоянно жать на безопасное извлечение. Как-то так... безопасное извлечение это про кэш на запись, а мне мешает чтение. при чтении, как мне кажется, если я скопирую с медленной флэшки файл куда-нибудь, а потом попробую ещё раз, во второй раз всё будет заметно быстрее, потому что на флэшку он за ним заново не полезет, а достанет из кэша. да и народ в этой теме выше жалуется тоже, так что это вроде бы не только плод моего больного воображения, ну или не только моего. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Intel4004 1 1 ноября, 2020 Опубликовано 1 ноября, 2020 · Жалоба Недавно практически такую-же тему создавал. В результате пришел к тому, что написал обертку вокруг кейловских MDK USB и MDK FS. Работает так: если нужен доступ к флешке, которая в данный момент используется как USB MSC - то ждем 5 сек с последнего обращения по MSC (на самом деле винда сбрасывает флаг "смонтировано" через полторы секунды после последней записи, т.ч. 5 - для пущей надежности), ставим MSC в паузу (переключаем владельца на FS), читаем/пишем на флешку. После этого если только читали - переключаем владельца назад на MSC. Если писали - делаем USB Disconnect/Connect. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 2 ноября, 2020 Опубликовано 2 ноября, 2020 · Жалоба передёргивать девайс connect/disconnect что-то совсем не хочется, мухлевать с "test unit ready (TUR) command response" никто не пробовал? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Immortal_Buka 0 2 ноября, 2020 Опубликовано 2 ноября, 2020 · Жалоба On 10/29/2020 at 10:53 AM, _pv said: а что именно в cmsis-dap сделано? как я понял, через SCSI команды SCSI_START_STOP_UNIT 0x1B SCSI_MEDIA_REMOVAL 0x1E Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
khach 45 2 ноября, 2020 Опубликовано 2 ноября, 2020 · Жалоба 7 minutes ago, Immortal_Buka said: SCSI_START_STOP_UNIT 0x1B SCSI_MEDIA_REMOVAL 0x1E Так это же команды хоста? А если винда не хочент осовободить флешку а надо писать? Тут скорее статус из sbc_sense_key надо крутить, чтобы в ответ на IO команду уговорить винду подождать а потом перечитать кеши. Для TUR надо чтобы винда освободила флешку хотя бы на секунду, чтобы флешка симитировала что она заснула и ее надо будить. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 2 ноября, 2020 Опубликовано 2 ноября, 2020 · Жалоба 13 minutes ago, khach said: А если винда не хочент осовободить флешку а надо писать? Тут скорее статус из sbc_sense_key надо крутить, чтобы в ответ на IO команду уговорить винду подождать а потом перечитать кеши. Для TUR надо чтобы винда освободила флешку хотя бы на секунду, чтобы флешка симитировала что она заснула и ее надо будить. данных не много и самой "флэши" нет как таковой, соответственно нет и проблемы с "занятостью" флэши, новые данные подсунуть мешает только кэш на чтение. пожалуй ещё может помочь FILE_FLAG_NO_BUFFERING для CreateFile, но вот остальные программы файл открывать копировать будут сами без этого флага. может ещё есть какие-нибудь рабочие костыли вроде [генератор бредовых идей=on] с расшариванием диска по сети обратным подключением этой же флэшки \\\\localhost\\F$, обратно уже как сетевого диска, при этом вдруг кэширование там где-нибудь по пути отвалится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_pv 79 2 ноября, 2020 Опубликовано 2 ноября, 2020 · Жалоба ещё одни костыли как сбросить файловый кэш у виндов: https://docs.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-setsystemfilecachesize https://www.uwe-sieber.de/ntcacheset_e.html#SetSystemFileCacheSize Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться