Цитата(zheka @ Feb 24 2014, 19:46)

А недавно программа стала зависать в одном и том же месте, но нерегулярно, в зависимости от положения звезд и фазы луны. Ни один цикл брейкпоинтом не ловится, ощущение, что программу кинуло куда-то не туда и контроллер просто встал.
Как KEILом вычислить этот участок кода?
Если брейкпойнтом не ловится, значит перепахивает память. Такое отловить сложно, надо организовать контроль памяти и писать туда строго по проверенным адресам. Еще вариант вычислить саму подпрограмму которая это творит, если ставить по очереди пустышки вместо подпрограмм, с фиктивными фиксированными данными на выходе, если есть данные.
Короче ищите кто валит память, виновников может быть много и механизм "перепахивания" может быть любой. Конкретно советовать трудно.