Доброго времени суток. Наткнулся на такую проблему в STM32L151: при попытке стирания страницы Flash операция проходит без ошибок, но память не стирается. Операция выполняется согласно алгоритму, описанному в Reference Manual'е "Flash program memory and data EEPROM (FLASH)" (стр.63) 1. Разблокировка регистра PECR 2. Разблокировка записи во флэш 3. Установка бита ERASE в регистре PECR 4. Установка бита PROG в регистре PECR 5. Ожидание сброса бита BSY в регистре SR 6. Запись 0x00000000 в первые 4 байта страницы (0x08001000) 7. Ожидание сброса бита BSY в регистре SR 8. Сброс бита PROG в регистре PECR 9. Сброс бита ERASE в регистре PECR 10. Блокировка регистра PECR Данная процедура проходит без ошибок (флаги ошибок сброшены, EOP = 1), но страница не стирается. Код функции стирания расположен в RAM. Если кто-нибудь сталкивался с подобным поведением МК, то подскажите куда копать.
|