Всем привет. Столкнулся с непонятной проблемой. 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 не пишет всё равно.
В общем ничего не понимаю, наверное что-то очевидное, нужна помощь зала.
Сообщение отредактировал T800 - Jul 1 2015, 06:44
|