Comments 14
Подключать микросхему QSPI в 1-битном режиме - ну, такое. Многие STM32 позволяют читать такие микросхемы вообще в режиме прозрачного отображения на память, в 4-битном режиме. Есть и другие варианты.
100k erase cycles - главный минус этой памяти... ( Использовал как то в пет проекте fram ,цена конечно кусается, но можно было не опасаться что помрёт)
У FRAM тоже есть ограничение на количество циклов, кстати
Если циклически менять секторы, а не писать в один и тот же, то ресурс кратно возрастает. Судя по FRAM, у вас небольшие объёмы записываемых данных.
Я правтльно понял, что файловую систему LittleFS реализует сама микросхема flash своим контроллером? Сама распределяет файлы по секторам, очищает сектора перед записью. А вы уже из кода драйвера обращетесь а не к адресу памяти а работаете сразу с файлами?
Нет, это - обычная флешка, там в статье код есть чтобы прикрутить эту флешку к LittleFS, но не более
Исходники файловой системы LittleFS лежат в открытом доступе на GitHub.
https://github.com/littlefs-project/littlefs
Задача сводится лишь к тому, чтобы заполнить конфиг-структуру для подключение API драйвера микросхемы MX25L6433F к коду LittleFS.
Не рекомендую LittleFS, она раскручена в среде ардуиещиков, но имеет кучу проблем. Как-то использовал, помучался, отказался. Также посмотрите issues на github. Еще вот как-то заскринил:
Имею опыт применения littlefs с первых релизов в коммерческом проекте (на текущий момент около 30к активных девайсов на этой фс). Проект имел сжатые сроки, Краснодарский бюджет (т.е. -> 0), требовал как заявленные "Power-loss resilience", так и "Wear leveling", а так же некоторую специфику, которая выяснились в процессе. Первой моей ошибкой оказалось то, что я решил что ARM и MBED это серьезные ребята, а не одинокий японский радиолюбитель. Нет, парни, ChaN крут по настоящему, но и у него бывают эчинейшие ляпы (в этом можно легко убедиться, если внимательно почитать историю версий FatFs). Но вернемся к littlefs. Выпустили ее не то что бы сильно оттестированной (да да, это опенсорс, детка, тут тебе никто ничего не должен). В общем в ветке 1.x при масштабировании на первые 1к девайсов она начала регулярно осыпаться в труху. Иногда настолько, что восстановить ее можно было только полным стиранием флеши. На гитхабе на это было много жалоб. Есть и мой ишью с подборочкой дампов после креша. Но автору было уже не до ветки 1.x. Он пилил ветку 2.x, которая должна была стать еще более быстрой, и более надежной. Перейти на ветку 2.x я не смог из потери примерно 40% производительности на моем кейсе, кроме того как показали мои немногочисленные тесты проблему крешей фс на тот момент так и не решили. А затем афтор и вовсе ушел в туман примерно на пол года без объявления войны. Через полгода правда выкатил версию 2.2 в которой вроде как полечил основные болячки, но я уже не смотрел что у него получилось. В итоге что могу сказать в сухом остатке о ней: 1) Круто, что есть такая библиотечка. Не круто, что маркетинг опять победил здравый смысл. Не было бы претензий к этой поделке, если бы ее не пиарили в определенных кругах, как панацею от всех болезней. 2) Когда MBED по своим теста получает рост производительности, я получаю ее потерю. К сожалению, это печаль конкретно моей аппаратной платформы на базе SIM868, EAT и софтового SPI, о котором китайцы тактично умолчали. 3) Не любит писать в начало или середину файлы. Только в конец. Иначе переписывает файл от места изменения до конца. Приходится писать ротацию файлов. Но каталоги живут по тем же правилам, и при большом количестве файлов тоже начинаем упираться в производительность. 4) Сама библиотека очень плохо проверяет входные параметры. Иногда вообще не проверят. Она ждет что это будет делать прослойка между ней и пользовательским кодом. В общем библиотеку рекомендую. В ней все как мы любим.
Сейчас китайцев есть смысл изучать - GigaDevice, Zetta, и подобных. Хотя совсем недавно Winbond и Macronix больше 64 мбита тоже были доступны. Но не теперь.
У меня есть реестр сравнения разных типов памяти
память ROM RAM Flash
Вот он
https://docs.google.com/spreadsheets/d/1m3TZK1-Uz6JjKpv7rpEAgvpW_WwF1x2sX78ZtoO9huI/edit?gid=634440697#gid=634440697
пин холд это вход, отключает спи. но я так и не придумал в какой ситуацыи это можэт понадобица.
я использовал такую м/сх для кольцевого лога, как недостаток надо хранить последний адрес или тратить время на поиск стертой страницы.
Обзор SPI Flash памяти MX25L6433F