Массовое хранилище для встроенных приложений

Каковы мои варианты, если мне нужно иметь дело с относительно большими объемами данных на встроенном процессоре? Я нашел хранилище около 2-4 ГБ с контроллером SPI, но я думаю о чем-то от 10 до 100 ГБ.

карта США? или QSPI флэш...
Какой встроенный процессор? Если он достаточно эффективен, диск SATA прекрасно справится с этой задачей.
@MadHatter Не знаю, почему я не рассмотрел это. Оказывается uSD делает SPI? Буду ли я работать по максимуму после 32-битного адреса?
@uint128_t Что-то вроде ARM-M4. Вероятно, придется накатывать свои собственные драйверы?
@RYS О. SATA, вероятно, не подходит. Как сказал сумраквафф, SD/uSD/eMMC, вероятно, ваш лучший выбор. USB-накопитель через хост-интерфейс USB также может быть вариантом.

Ответы (2)

Для этого диапазона размеров лучшим вариантом, вероятно, будет SD. С ним достаточно легко взаимодействовать, он легко доступен в больших объемах (сейчас до 256 ГБ!), и его можно легко прочитать с компьютера, если это необходимо.

В зависимости от ваших конкретных потребностей eMMC также может быть вариантом. По сути, это встроенный вариант SD с некоторыми небольшими изменениями.

Флэш-память NAND также является вариантом, но я бы не рекомендовал его. Необработанная флэш-память NAND не включает в себя какой-либо слой преобразования, поэтому в конечном итоге вам придется самостоятельно управлять выравниванием записи и плохими блоками. Это огромная боль.

Осторожность оправдана с SD. Реализации могут быть ненадежными. Совместимость может оказаться чудовищной занозой в заднице.

В зависимости от того, что вы хотите делать и какие процессоры вы можете использовать, я успешно использовал в течение нескольких лет SD-карты емкостью до 64 ГБ на различных контроллерах на базе ARM, включая

  1. Raspberry Pi
  2. БигльДоска
  3. STM32F из диапазонов 100, 300 и 400.
  4. Различные платы разработки Olimex STM32 со встроенной SDCard
  5. Различные устройства Android, например Samsung Galaxy, Nexus

Библиотеки ST включают драйверы sdCard, и вы можете использовать либо периферийное устройство SDIO, либо шину SPI. Вы можете использовать 1 бит (SPI или SDIO) или 4 бит (SDIO)

Поскольку вы создаете встроенное устройство, диапазон адресов может быть любым, он просто зависит от того, сколько битов вы отправляете, и SD требует в своем адресе.
Вы даже можете использовать более одной SD-карты, если вы сами управляете линией выбора или используете несколько периферийных устройств SPI.

Я никогда не находил что-либо из этого шелушащимся.

Вы не можете загрузить Raspberry с устройств > 32Gb, не прочитав и не применив исправления на веб-сайте Raspberry. Это ограничение ОС, а не процессора. (Не делал этого с Биглем).

Raspberry также поддерживает флешку на 64 Гб. Любой из контроллеров с поддержкой OTG также может это сделать.

32-битные PIC также должны поддерживать работу с SD-картой или USB-накопителем.

Android открывает совершенно новую область, в которую встроено множество функций, мне нужно только предоставить канал Bluetooth, Wi-Fi, USB или NFC. Думаю, вы могли бы перейти на IOS.