Скачал тут новую версию ИАР для MSP430 5.30.3 Начал было делом заниматься, смотрю не работает софт, который стабильно до этого работал. В итоге выяснилось, что у меня стоит обработчик прерывания на вочдог, а он не формируется компайлером. В памяти по нужному вектору стоят дефолтовые 0xffff , что приводит к сбросу, как только мы туда попадаем. Это касается не всех векторов, только этого. Он описан на самом деле в scmRTOS версии 3.10, поэтому если кто хочет посмотреть скачайте эту версию и попробуйте скомпилить пример. Речь полагаю не о как таковом векторе WDT (я проверил, само значение WDT_VECTOR верное), а, видимо, о какой то форме определения вектора прерывания (там типа через дефайны многоэтажные), которая стала вдруг непонятной компайлеру (с 5.20 все ОК было) . Кто-то сталкивался или у меня вечер пятницы?
Ну да. Не пятница. Взял и поставил #pragma vector=WDT_VECTOR прямо над функцией-обработчиком и все стало ОК. Изначально такая прагма стояла над объявлением функции в хедере. Второй баг уже в ИАРе нахожу.
|