Всем добрый вечер.
Нарисовал новую версию.
В новой версии я изменил алгоритм записи и стирания SPI FLASH.
Немного теории.
Процесс записи и стирания может проходить только со снятыми битами защиты.
учитывая это, а так же тот факт, что все флешки обычно имеют прошитые биты защиты.
Их защищают при производстве. Можно прийти к выводу, что обычная запись,
со снятием защиты, делает микросхему беззащитной.
Что не очень хорошо.
Ошибка в программе или сбой могут привести к записи в когда-то защищенные ячейки памяти.
И система заглючит ... а то и помрет.
По этому. в новой версии, перед записью и стиранием, программа копирует и сохраняет регистр статуса.
По окончании операций программа восстанавливает значение в регистре.
Так же в этой версии я устранил ошибку определения. Которую сам и внес в прошлой версии.
Пока писал окно выбора чипа SPI, применил класс. написанный для Eeprom кнопок.
забыл что в нем я применил статические переменные, другими словами общие для всех экземпляров класса.
к примеру индекс активного(выбранного элемента)... Он для всех кнопок будет один.
Но этот класс я писал очень давно и уже забыл про все тонкости.
В итоге, при попытке определить чип SPI FLASH, когда открыто окно Eeprom,
происходит накладка. И как результат ошибка.
В этой версии данная ошибка устранена, так же немного оптимизировал код.
Доработанная программа в архиве.