Добрый день!
У меня такая проблема: при первой после перепрошивки попытке записать 0x10000000 в ISER[0] контроллер перезапускается. После этого его ничем не пронять, кроме повторной прошивки. Смотрел регистры - ничего лишнего не установлено. Все работало, как надо. Но после очередного перезапуска отладки (даже без перепрошивки) контроллер перестал подавать признаки жизни. Работает адекватно до момента включения NVIC. Может кто сталкивался с таким? Я даже не знаю, в какую сторону бежать.
Нет, я включаю осознанно существующее прерывание от таймера2 с помощью как раз этой самой CMSIS.
Я, конечно, не считаю себя прям таким уж супер программистом, но все-таки писать в случайные регистры случайные значения я бы не стал.
Похоже, придётся ставить новый контроллер. Хотя, еще проверю на discovery и другой проект на этом.
А, ну и чтоб совсем развеять все сомнения, вот:
Спойлер
И плюс конкретное место, где это в CMSIS находится. (Хотя на самом деле это не cmsis, а STM32F10x_StdPeriph_Driver)
СпойлерSTM32F10x_StdPeriph_Driver\src\misc.c
Проблема разрешилась сама собой. Не сказал бы, что это меня радует, но все же, лучше, чем ничего. Возможно, что это связанно с тем, что включение тактовых частот я распределил по местам инициализации соответствующей периферии, вместо того, чтобы включать их в начале программы. На это пошел из-за того, что в новом проекте прерывания заработали совершенно безболезненно.