Попробую немного рабочего написать...
Попробую немного рабочего написать - не всё же про ретро железки :)
Есть такой производитель микроконтроллеров Artery, и есть у него такая штука SPIM - которая, в теории, берёт на себя все нюансы работы с флеш-памятью - настраиваем тип микросхемы и поехали. Но вот на практике…
Столкнулся с багой в программе - включаю SPIM, читаю одну ячейку и получаю не то значение, которое там записано. Перечитываю через некоторое время - уже правильный байт. Хм… Напаяв МГТФ-паука и подрубив логический анализатор вижу, что этот SPIM срезает углы где можно и где нельзя.
После включения он пишет в два регистра статуса значение 0x02 для настройки QSPI и защиты от записи. Запись именно 0x02 в первый регистр не имеет смысла т.к. первые два бита в нём только для чтения. Ну да ладно - срезали угол, но результат тот же, ок. Но дальше полагается ожидать окончания записи (tW 10-15мс для W25Q128FV) - до этого момента микросхема не принимает почти никакие команды. А вот это сделать забыли и шпарят команды сплошным потоком. Упс.