Цитата(Сергей Борщ @ Nov 7 2007, 11:54)

Что значит "зависание"? Контроллер парит над столом или все же исполняет код в цикле и не возникает условие выхода или пытается исполнить команду по какому-то адресу из флеш, а поскольку флеш стерта - считывает оттуда код команды безусловного перехода на себя? В последнем случае у вас или разрешены прерывания (а вектора стерты), либо срабатывает собака.
Да в том то и проблема, что ничего из перечисленного как-то не вероятно. После первой попытки записи код останавливается, если же закоментить именно эту строчку, то весь цикл отрабатывает хорошо до конца (и это уже при стёртой полностью флеш). Прерывания запрещены и Собака отключена, что не мешает циклу без записи завершаться. Все функции в RAM, поэтому даже со стёртой флешкой цикл завершается нормально без записи(опять-таки не прерывания, ни собака не возникают никоим образом). Стоит только сделать запись (в той злосчастной строчке ), как МК виснет.
Как именно виснет, сложно сказать, код в РАМ, смотрю без отладчика, ну во всяком случае это не IRQ, не WDT и не обращение за кодом из флеш.