ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
21 января
1490510
klen (12.01.2025 21:21 - 13.01.2025 12:50, просмотров: 3173)
klfs+ch32v307+w25q512 (обычный spi 30МГц клок) че получилось: 

1. долго и нудно перепиливал вот это

https://github.com/littlefs-project/littlefs

почитать на русском

https://habr.com/ru/articles/347348


написана она на ОЛБАНСКОМ диалекте Cи. у меня текли реки крови из глаз, и желчи из ..

но алгоритмы и идеи ФС мне понравились. поэтому переписывал с втягиванием С++2x, шаблонов, туплусов и прочей ереси предназначенной в конечном итоге для ускорения кода.


в итоге я имею один заголовок с одним классом который все это реализует.

кроме всего прочего вновь сделано

1) контекст дотащен(они не смогли) до самой нижней фукции ( драйвера железа накопителя, в моем тестовом случае это spi/w25q512 )

2) все что можно привести к константным данным приведено к static/constexpr/consteval чтоб не жрало стек и время.

3) были какие то куски кода которые после распутывания оказывались никогда не могут быть вызваны - нах с пляжа.

4) где то интерфейс мне не нравился с точки зрения микроконтроллеров (скорость, жор озу и тп) - принимались меры.

5) ... нещадно мечем и огнем искоренялись макросы .. но еще не до конца... сил уже нет бороться с этим злом. но надо!

6) важно!!! ВСЕ ЗАВИСИМОСТИ вынесены в аргумент шаблона io_t и предоставляются через него - тоесть все libc ( тика memcpy, memset.... etc ) вызовы не линкуются как обычно, а тащатся через шаблон. таким образом сам класс файловой системы не зависит от внешнего кода напрямую. это позволяет подсунуть исключитель собственные реализации чего угодно,



те кто жаждють познакомится с олбанским в перемешку с моим - тут можно повтыкать и поотдуплять умом в код, если интересно. но на вид жуткое .. чтоб шары не полопались нужно предварительно надеть очки с зелеными стеклами, предназначенные для сварки!

klfs_.h


предварительны результат - оно таки работает и не портится со временем (пока... )

предварительная оценка скорости на последовательности операциий

открыть имеющийся файл (open) 12.6 мс

позционировать в конец (seek) 0.0 мс

пописать в конец 5МБайтного файла 128кБайт данных (write) 424.1мс

сброс остатков из кеша в флешь (sync) 2.3мс

закрыть (close) 0.0мс


скорость работы spi 30МГц.

вопрос к знающим страдальцам. эта скорость нормальная маленткая хорошая????? c учетом клока spi

я понимаб что цыфры мутные и непонятну условия забега, но все что пока есть.