Цитата(haker_fox @ Sep 12 2018, 03:26)

Я бы от ФС не отказывался. Она всё равно нужна, хоть своя, хоть стандартная. Даже если просто писать сырые данные, то их нужно как-то упорядочивать и привязывать к адресному пространству. Элементарно, чтобы потом найти.
А в чём проблема найти данные в хранилище собственного формата? В чём тут разница с ФС?
Цитата(haker_fox @ Sep 12 2018, 03:26)

А если железка подключается к компу, и необходимо посмотреть данные, то тут точно FAT необходима.
Если карта вынимается и вставляется в комп - то да. Если не вынимается - нет. Так как устройство может интерпретировать и показывать данные по внешнему интерфейсу
как угодно как захочет автор программы.
И даже более того: если скажем нужен кольцевой буфер в который что-то иногда пишется и который иногда нужно показать как файл при подключении к компу. Предположим - данные пишутся блоками одинакового размера N байт.
Как Вы это реализуете с ФС? И как без ФС?
А теперь доп. требование: показать такое хранилище через внешний интерфейс как файл с самыми последними данными в его начале (или конце)?
Ещё доп. требование: кроме этого кольцевого буфера, устройство должно хранить некую структуру данных (например - собственную конфигурацию), произвольные члены которой, должны переписываться в произвольные моменты времени. Причём устройство не имеет монитора питания (может быть выключено в произвольный момент времени), но нужно чтобы конфигурационная структура не была разрушена при таком внезапном выключении в любой точке процедуры записи. Как при включении устройства проверить валидность и атомарность конфигурационной структуры? Как сделать так, чтобы исключить ситуации, когда первые N1 байт структуры относятся к случаю после новой записи, а последние N2 байт - к случаю после новой записи? Как это сделать с ФС и без оной? Какой вариант будет сложнее (или потребует расхода бОльшего ресурса флешь)?
Цитата(haker_fox @ Sep 12 2018, 03:26)

Если карта - единственное устройство на шине, то буфер не требуется. Можно просто все GPIO перевести на входы.
Ну так вот - Вы сами и ответили. Что буфер - это не требование собственно SPI, а требование при объединении на одной шине SPI нескольких устройств, когда питание некоторых из этих устройств выключается. И если на одну SDIO также повесить несколько устройств, которые могут отключаться по питанию, то для них также потребуются буфера. Так что разницы тут нет никакой.