реклама на сайте
подробности

 
 
> LPC2294 + IAR + Прерывания
Diablo
сообщение Apr 16 2012, 15:58
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 6-02-12
Пользователь №: 70 116



Добрый вечер!

Решил разобраться с работой прерываний на МК LPC 2294. Начал с самого простого - взял готовый пример поставляемый вместе со средой разработки, но он к сожалению оказался нерабочим. Выяснилось, что не работают прерывания, т.к. если убрать обработчики прерываний и формировать задержку простым счетом , то пример работает.

В связи с этим у меня возникли несколько вопросов:

1) Почему не работают прерывания, в чем может быть причина?
2) Может быть что-то неправильно проинициализировано (не инициализировано вообще) для обработки прерываний в файле startup.s?
3) Можно ли обойтись в проекте без файла startup.s. (вопрос возник т.к. в прилагаемом проекте он отсутствовал).
Возможно при сборке проекта прилинковывается стандартный файл в каталоге со средой, но подходит ли он для моего процессора?

Насколько мне известно, в файле startup.s находится таблица векторов исключительных ситуаций и в нем же производится
инициализация указателей стек для различных режимов работы, настройка какой-либо периферии (опционально), ну и передача
управления функции main. Вместо файла начальной инициализации в настройках проекта указан файл с
расширением *.icf (Linker configuration file), в котором указано расположение векторов исключительных ситуаций и размеры стеков.
Может ли этот файл заменить startup код или же придется писать его ручками?

4) Если нет, то где можно подчерпнуть информацию по его написанию?
В Keil всё очень просто и структура файла довольно понятна, да и в книге Тревора Мартина все подробно описано, а вот в IAR
мне не совсем понятно как это делается.

Заранее благодарю за ответ

P.S. В качестве среды разработки используется IAR EWARM

Сообщение отредактировал Diablo - Apr 16 2012, 16:02
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
esaulenka
сообщение Apr 18 2012, 15:27
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 032
Регистрация: 13-03-08
Из: Маськва
Пользователь №: 35 877



Цитата
Такое ощущение, что управление пользовательской программе не передаётся.


Если у меня складывается такое ощущение, я первым делом проверяю, не попал ли контроллер в бут (флешмэджиком). Помогало неоднократно :-)

Если оно так и есть, проверьте контрольную сумму (подробности - в user manual, искать "Criterion for valid user code") и уровень на соответствующей ноге.


Цитата
Возможно задам глупый вопрос, но можно ли через JTAG посмотреть, куда попадает программа сразу после сброса?

Глупый или нет, но я ответ не знаю. У меня (keil) при старте отладки просто выставляет program counter = 0, и всё работает вне зависимости от загрузчика. Как посмотреть, что там с "настоящим" резетом, непонятно.

Хотя нет, вру. В настройках отладчика есть выбор сброса контроллера. Возможно, какие-то варианты дадут нужный Вам результат.


--------------------
Тут обсуждается творческий порыв, а не соответствие каким-либо стандартам ©
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Diablo   LPC2294 + IAR + Прерывания   Apr 16 2012, 15:58
- - mempfis_   Возьмите стартап и icf файл из примеров иара для в...   Apr 16 2012, 17:01
- - Diablo   Собственно это я и сделал в первую очередь, весь к...   Apr 16 2012, 17:14
|- - mempfis_   Цитата(Diablo @ Apr 16 2012, 20:14) Собст...   Apr 16 2012, 17:35
- - Diablo   Вот код основной программы CODEint main (void) { ...   Apr 17 2012, 16:12
|- - mempfis_   Сравнил lpc22 с lpc23/lpc17 (с которыми я работал...   Apr 17 2012, 17:56
- - Diablo   Отображение векторов производится на Flash Что ка...   Apr 17 2012, 18:05
- - Diablo   Что-то я вообще ничего не понимаю! Зашил сего...   Apr 18 2012, 14:45
- - Diablo   ЦитатаЕсли у меня складывается такое ощущение, я п...   Apr 18 2012, 16:17
- - esaulenka   FlashMagic - это утилита для прошивки NXP'шных...   Apr 18 2012, 20:31
- - Diablo   Посмотрел я сегодня что и как располагается в памя...   Apr 19 2012, 16:19
- - esaulenka   Я ни разу не видел IAR ARM. Покажите, пожалуйста, ...   Apr 19 2012, 17:16
- - Diablo   Вот пожалуйста CODE __irq __arm void irq_handler(...   Apr 19 2012, 17:35
- - esaulenka   ЦитатаА почему 0x40002FFF? В доках на микроконтрол...   Apr 19 2012, 18:07
|- - mempfis_   Проверил адреса VIC/TIM0/GPIO0 - совпадают с lpc23...   Apr 20 2012, 08:26
- - Diablo   Keil вообще намного проще для освоения для новичка...   Apr 19 2012, 18:17
- - esaulenka   Ну попробуйте переделать эту Вашу программу на кей...   Apr 19 2012, 18:24
- - Diablo   To mempfis_ Спасибо огромное, обязательно попробу...   Apr 20 2012, 14:47
|- - mempfis_   Цитата(Diablo @ Apr 20 2012, 17:47) И вы ...   Apr 20 2012, 15:09
- - Diablo   ЦитатаПри работе без прерываний не возникает исклю...   Apr 20 2012, 15:29


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th August 2025 - 19:17
Рейтинг@Mail.ru


Страница сгенерированна за 0.01534 секунд с 7
ELECTRONIX ©2004-2016