Доброго времени суток.
Наткнулся на такую проблему в 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.
Если кто-нибудь сталкивался с подобным поведением МК, то подскажите куда копать.