USB Mass Storage.

victor_pv
Чт 17 сентября 2015 г. 2:32 утра
Я только что наткнулся на этот проект:
https: // github.com/joeferner/maple-usbm ... usb_mass.в

Я не проверил это, и, кажется, это было написано для старого либмапла, поэтому понадобится немного портирования, но если у меня будет время на выходных, я могу сделать снимок.

Одна функциональность, которая привлекло мое внимание, - это пример: * Этот пример требует библиотеки Maple-SDFAT (http: // code.Google.com/p/maple-sdfat/).
*
* Когда пример запускается, он создает два файла /proc /перезагрузка и /proc /bootload
* Если вы напишите что -нибудь в эти файлы с хост -компьютера, он перезагрузится или
* Введите загрузчик соответственно.

Rogerclark
Чт 17 сентября 2015 г., 7:13
Я быстро посмотрел на массовое хранилище USB несколько месяцев назад, но из того, что я помню, старый код не сработал.

Однако у меня не было времени, чтобы понять, почему бы и нет, и у меня было ощущение, что какая бы проблема была.

Я подозреваю, что с HID USB ;-)

victor_pv
Пт 18 сентября 2015 г. 12:42
Rogerclark написал:Я быстро посмотрел на массовое хранилище USB несколько месяцев назад, но из того, что я помню, старый код не сработал.

Однако у меня не было времени, чтобы понять, почему бы и нет, и у меня было ощущение, что какая бы проблема была.

Я подозреваю, что с HID USB ;-)

victor_pv
Ср 23 сентября 2015 г. 1:52 утра
victor_pv написал:Rogerclark написал:Я быстро посмотрел на массовое хранилище USB несколько месяцев назад, но из того, что я помню, старый код не сработал.

Однако у меня не было времени, чтобы понять, почему бы и нет, и у меня было ощущение, что какая бы проблема была.

Я подозреваю, что с HID USB ;-)

Либарра
Сб 3 октября 2015 г., 19:21
victor_pv написал: Быстрое обновление, я получил его для компиляции на выходных, но у меня не было времени, чтобы подключить доску на SDCARD и проверить ее.
Надеюсь в следующие выходные...

Mrburnette
Солнце 04 октября 2015 г. 12:19
Либарра написала: <...>
Замечательно! Может ли это помочь сделать версию загрузчика, где вы можете загрузить двоичные файлы, перетаскивая их на устройство «хранения»?
<...>

Вассилис
Солнце 04 октября 2015 г., 4:33
Согласен с Рэем. Вот почему почти все производители используют отдельный MCU для перетаскивания, программируя основной MCU.
Конечно, дополнительный чип действует как конвертер USB в сериал, а также отладчик также.

В прошлом я использовал ST-Link для программирования своих досок STM32. Во время разработки проектов я увидел, что мне пришлось развиваться до 4 одновременных проектов. Я вынужден отсоединить свою ST-Link от одной платы STM к другой. Это было слишком раздражающим. Поскольку у каждой платы STM есть интерфейс USB, я наконец решил использовать загрузчик STM32Duino, потратив 8 кбит флеш -памяти на это.
Это стоит его использовать, потому что он не потребляет много флеш -памяти и ресурсов процессора.

На мой взгляд, текущего загрузчика STM32Duino достаточно. Функция Drag-N-Drop очень хороша на случай, если кто-то захочет разработать другой программист STM32, такой как ST-Link V2.1

Либарра
Солнце 04 октября 2015 г. 14:39
Mrburnette написал:
Это то, что действительно нужно миру?

Смысл заключается в том, что исполняемый прослушиваемый (или язык сценариев графического интерфейса) должен работать в памяти, чтобы принять свойства из действия Drag-N-Drop. Ничто не приходит бесплатно.

Луча

Martinayotte
Солнце 04 октября 2015 г., 17:30
Может быть, я что -то пропустил здесь, но Drag'n'drop реализован File Browser, а не самим устройством.
Если устройство обеспечивает функциональность массового хранения, а копия командной строки работает, то Drag'n'drop тоже будет работать.

Это напоминает мне, что когда я получил плату Dev LPC1768 несколько месяцев назад, в ней уже был такой вид загрузчика MSC.

Ахулл
Солнце 04 октября 2015 г., 18:03
Martinayotte написал:Может быть, я что -то пропустил здесь, но Drag'n'drop реализован File Browser, а не самим устройством.
Если устройство обеспечивает функциональность массового хранения, а копия командной строки работает, то Drag'n'drop тоже будет работать.
...

Либарра
Солнце 04 октября 2015 г., 19:25
Martinayotte написал:Может быть, я что -то пропустил здесь, но Drag'n'drop реализован File Browser, а не самим устройством.
Если устройство обеспечивает функциональность массового хранения, а копия командной строки работает, то Drag'n'drop тоже будет работать.

Это напоминает мне, что когда я получил плату Dev LPC1768 несколько месяцев назад, в ней уже был такой вид загрузчика MSC.

Стевех
Солнце 04 октября 2015 г. 8:50 вечера
Я использовал доску Arm Mbed LPC несколько лет назад. У него скачивание перетаскивания.
Насколько я помню:
У платы есть второй меньший микропроцессор. Он запускает код поддержки массового хранения USB, и он использует FATFS и небольшой флэш -чип SPI.
Таким образом, перетаскивание фактически заставляет 2 -го микропроцессора взять новый файл и сохранить его во вспышке.
Затем, IIRC, 2 -й Micro устанавливает код этого файла в основном процессоре, если дата моложе последнего установленного файла (или нет заранее).

Я не помню, как 2-й Micro заставляет 1-й Micro получить и самопрограмму (написать Flash).

Причина 2 -го микро -микросхема заключалась в том, что он всегда работал, независимо от ошибок в коде пользователя и использование его добавляет затраты, но избегает уменьшения вспышки, доступной для кода пользователя, и не нарушала последовательность сброса 1 -го микро -микросхемы от дефолтов по умолчанию.

Плата Teensy 3 (Freescale Cortex M3) тоже имеет 2 -й Micro. Он не использует приведенную выше схему в качестве USB -хранилища, но позволяет основному MCU не иметь специального кода/последовательности сброса, а также не стоит флэш -места. Это может быть перетаскивание, но вместо этого его вызывают IDE (Visual Micro IDE (Visual Studio) или IDE Arduino). Эти IDE поддерживают руки из Atmel, Freescale, ST Micro и других.

2 -й микроалле < $ 1.

Martinayotte
Солнце 04 октября 2015 г. 22:36
В случае платы LPC1768, о котором я упоминал, не было второго MCU, USB -хранилище было обработано собственным загрузчиком.
Любые файлы были записаны в устройствах (через Copy или Drag'n'drop) автоматически обновляли прошивку без каких -либо проверки.
http: // www.eBay.com/itm/nxp-series-lpc1 ... 2A40642C05

victor_pv
Солнце 04 октября 2015 г. 11:02 вечера
Я думаю, что Рэй имел в виду, что вам необходимо использовать код в MCU, чтобы обнаружить, когда файл был скопирован на устройство массового хранения, и написать на Flash.
Такой код будет потреблять циклы Flash, RAM и CPU, убирая их из ресурсов, доступных для вашего приложения.
Использование вспышки может быть не проблемой, но время обработки, которое оно требуется, просто для того, чтобы ждать, чтобы файл был скопирован в него... Вот для чего. Ваш основной MCU полностью посвящен вашему приложению, а второй MCU заботится о коммуникации и программировании.
Кроме того, если ваш код разбивает MCU, то загрузчик больше не работает.

Наличие загрузчика, который у нас есть сейчас, я считаю лучшим компромиссом. Это займет всего несколько секунд времени процессора, а затем передайте полное управление вашему коду, включая полное управление портом USB. Если вы кодируете общение с USB, вы можете нажать кнопку сброса, а загрузчик снова прослушивает.

Стевех
Пн, 5 октября 2015 г. 12:48
Martinayotte написал:В случае платы LPC1768, о котором я упоминал, не было второго MCU, USB -хранилище было обработано собственным загрузчиком.
Любые файлы были записаны в устройствах (через Copy или Drag'n'drop) автоматически обновляли прошивку без каких -либо проверки.
http: // www.eBay.com/itm/nxp-series-lpc1 ... 2A40642C05

Mrburnette
Пн, 5 октября 2015 г. 12:59
Martinayotte написал:Может быть, я что -то пропустил здесь, но Drag'n'drop реализован File Browser, а не самим устройством.
Если устройство обеспечивает функциональность массового хранения, а копия командной строки работает, то Drag'n'drop тоже будет работать.

Это напоминает мне, что когда я получил плату Dev LPC1768 несколько месяцев назад, в ней уже был такой вид загрузчика MSC.

Либарра
Вт 06 октября 2015 г. 12:32
Mrburnette написал:Я явно неправильно понял; Я думал, что реализация, такая как:
https: // www.PJRC.com/Teensy/Loader.HTML

Был желателен и что это будет активно перетаскивать. Да, можно было бы использовать Explorer для хранения мусорного ведра, как и любой старый флэш -накопитель, предоставленный свойствами устройства в качестве USB Mass Storage.

victor_pv
Вт 06 октября 2015 г. 4:32 утра
Либарра написала:Mrburnette написал:Я явно неправильно понял; Я думал, что реализация, такая как:
https: // www.PJRC.com/Teensy/Loader.HTML

Был желателен и что это будет активно перетаскивать. Да, можно было бы использовать Explorer для хранения мусорного ведра, как и любой старый флэш -накопитель, предоставленный свойствами устройства в качестве USB Mass Storage.

Martinayotte
Вт 06 октября 2015 г. 13:15
На моем старом LPC1768 мне пришлось нажать кнопку загрузки на Powerup, чтобы она превратилась в USB Mass Storage.

Rogerclark
Вторник 06 октября 2015 г. 20:46
Я думаю, что нам нужно проверить, разрешит ли Windows 7 (и позже) загружать несколько драйверов устройств на одну часть аппаратного обеспечения.

Afik, это был основной камень преткновения для Leaflabs, когда они первоначально делали загрузчик, но они разрабатывали для XP

я.E вы не можете одновременно запустить серийные драйверы USB и DFU одновременно, потому что они два разных (внутренние драйверы Windows), а не составной драйвер, который коммерческие компании развертывают, чтобы делать такие вещи на других досках.

Я полагаю, что можно написать композитный драйвер, но я не уверен, у кого будет время или навыки, чтобы сделать это, и даже если кто -то написал один, другая проблема - загрузка незначенного драйвера, как стоимость подписать Драйвер для Windows Afik, много тысяч долларов.
Может быть работа, подобная системе Libwdi, чтобы загрузить файл драйвера (SYS), но это не то, что я столкнулся.

Так что я думаю, что это действительно отвлекает, и время каждого может быть лучше потрачено на другие вещи.

Либарра
Вторник 06 октября 2015 г. 11:43
Rogerclark написал:Я думаю, что нам нужно проверить, разрешит ли Windows 7 (и позже) загружать несколько драйверов устройств на одну часть аппаратного обеспечения.

Afik, это был основной камень преткновения для Leaflabs, когда они первоначально делали загрузчик, но они разрабатывали для XP

я.E вы не можете одновременно запустить серийные драйверы USB и DFU одновременно, потому что они два разных (внутренние драйверы Windows), а не составной драйвер, который коммерческие компании развертывают, чтобы делать такие вещи на других досках.

Я полагаю, что можно написать композитный драйвер, но я не уверен, у кого будет время или навыки, чтобы сделать это, и даже если кто -то написал один, другая проблема - загрузка незначенного драйвера, как стоимость подписать Драйвер для Windows Afik, много тысяч долларов.
Может быть работа, подобная системе Libwdi, чтобы загрузить файл драйвера (SYS), но это не то, что я столкнулся.

Так что я думаю, что это действительно отвлекает, и время каждого может быть лучше потрачено на другие вещи.

Стевех
Ср. 07 октября 2015 г., 3:18
Teensy 3 В качестве примера использует свой собственный протокол полукай на том же USB -порту, который впоследствии становится общим последовательным портом CDC. Не одновременно.

Rogerclark
Ср. 07 октября 2015 г. 5:06 утра
Можем ли мы настроить опросы здесь, на форуме? Не уверен.

Сайт использует phpbb. Так что, если он поддерживает опросы, это может быть сделано, если у меня будет время, или, возможно, есть сторонний сайт бесплатного «опроса», который вы могли бы использовать E, вы могли бы использовать E.глин. Возможно, что -то вроде обезьяна

Либарра
Чт, 8 октября 2015 г. 1:36
Rogerclark написал:Можем ли мы настроить опросы здесь, на форуме? Не уверен.

Сайт использует phpbb. Так что, если он поддерживает опросы, это может быть сделано, если у меня будет время, или, возможно, есть сторонний сайт бесплатного «опроса», который вы могли бы использовать E, вы могли бы использовать E.глин. Возможно, что -то вроде обезьяна