Всем привет.
Столкнулся с непонятной проблемой.
stm8l101, IAR
Суть явления - если я запускаю сессию дебага, то вижу что запись в EEPROM работает нормально. Пробовал разными способами, через указатель и через объявление переменной в области EEPROM. Плата работает как надо.
если отключаю STLink от платы и не дебажу, то не пишется значение в EEPROM.
защиту записи снимаю в самом начале программы, чтобы не ждать установки бита разблокирования памяти, хотя пробовал по-разному
Ещё одна странность. При дебаге в содержимом регистров я вижу что бит DUL в FLASH_IAPSR == 1, т.е. память разблокирована для записи. Решил проверить в коде программы
if(FLASH_IAPSR_bit.DUL==0)
{
-зажигаем светодиод
}
так вот при дебаге содержимое регистров показывает DUL==1, но в программе условие FLASH_IAPSR_bit.DUL==0 выполняется... При работе платы без дебага светодиод наоборот не горит, т.е. FLASH_IAPSR_bit.DUL==1 но EEPROM не пишет всё равно.
В общем ничего не понимаю, наверное что-то очевидное, нужна помощь зала.