Добрый вечер!
Решил разобраться с работой прерываний на МК LPC 2294. Начал с самого простого - взял готовый
Не работают прерывания от таймера, да и думаю, что вообще обработка прерываний не работает.
Имеется микроконтроллер LPC2294 и среда IAR EWARM. Имеется пример к этому микроконтроллеру, поставляемый со средой разработки
В примере используются прерывания от таймера для формирования задержки. Шьём пример в память МК - не работает.
Если убрать прерывания и формировать задержку простым счетом, то пример работает. Но работает если режим процессора
установлен как THUMB в настройках проекта.
1) Почему не работают прерывания, в чем может быть причина?
2) Почему запускается программа только в режиме THUMB.
3) Может быть что-то неправильно проинициализировано (не инициализировано вообще) для обработки прерываний?
4) Можно ли обойтись в проекте без файла startup.s. (вопрос возник т.к. в прилагаемом проекте он отсутствовал).
Возможно при сборке проекта прилинковывается стандартный файл в каталоге со средой, но подходит ли он для моего процессора?
Насколько мне известно, в файле startup.s находится таблица векторов исключительных ситуаций и в нем же производится
инициализация указателей стек для различных режимов работы, настройка какой-либо периферии (опционально), ну и передача
управления функции main. Вместо файла начальной инициализации в настройках проекта указан файл с
расширением *.icf (Linker configuration file), в котором указано расположение векторов исключительных ситуаций и размеры стеков.
Может ли этот файл заменить startup код или же придется писаьт его ручками?
5) Если нет, то где можно подчерпнуть информацию по его написанию?
В Keil всё очень просто и структура файла довольно понятна, да и в книге Тревора Мартина все подробно описано, а вот в IAR
мне не совсем понятно.