Перейти к содержанию
    

LPC2294 + IAR + Прерывания

Keil вообще намного проще для освоения для новичка, как мне кажется.

 

Но ничего не поделаешь, надо пользоваться IARом :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну попробуйте переделать эту Вашу программу на кейл, может, проблема и всплывёт...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проверил адреса VIC/TIM0/GPIO0 - совпадают с lpc23xx

Немного отличий в VIC - в lpc2294 меньше векторов прерываний

Слегка подкорректировал VIC (надеюсь всё исправил правильно).

Подкорректировал файл линкера под размер памяти в lpc2294

Убрал инициализацию PLL (не проверял, но думаю должно работать от встроенной RC-цепочки на 4 МГц)

Светодиод вывел на GPIO0 пин 2 (как в примере)

 

Скидываю Вам проект под iar5.40

У меня есть книга на английском Мартина Тревора - там описана организация векторных и невекторных прерываний. Но она весит 10МБ. Если у Вас нет могу скинуть по частям.

 

book

 

.

 

.

Изменено пользователем mempfis_

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

To mempfis_

 

Спасибо огромное, обязательно попробую этот пример.

Что касается книги, то сам начал её недавно читать, очень доступно написано, кстати есть уже и на русском языке.

 

To esaulenka

Ну попробуйте переделать эту Вашу программу на кейл, может, проблема и всплывёт...

Пробовал, проекты отличались только стартапом. Переносил недостающие части и Кейловского файла в свой, но увы...

 

Наверное, кто-то затирает MEMMAP

И вы совершенно правы :) Сегодня посмотрел JTAGом содержимое регистров после рестарта микроконтроллера. Значение MEMMAP = 3, т.е. режим использование внешней памяти, после записи в него 1 программа продолжает работу. Только мне в связи с этим непонятен один момент, если сразу после рестарта происходит ремап векторов во внешнюю память, то почему без проблем выполняется программа без использования прерываний?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И вы совершенно правы :) Сегодня посмотрел JTAGом содержимое регистров после рестарта микроконтроллера. Значение MEMMAP = 3, т.е. режим использование внешней памяти, после записи в него 1 программа продолжает работу. Только мне в связи с этим непонятен один момент, если сразу после рестарта происходит ремап векторов во внешнюю память, то почему без проблем выполняется программа без использования прерываний?

 

При работе без прерываний не возникает исключительных ситуаций (FIQ, IRQ, Data Abort (пусть меня поправят гуру)), поэтому всё работет.

 

У меня есть книга Тревора на русском в печатном виде. Но сам я пользуюсь в основном user manualи подглядываю в примеры.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При работе без прерываний не возникает исключительных ситуаций (FIQ, IRQ, Data Abort (пусть меня поправят гуру)), поэтому всё работет

 

Я тоже точно не знаю, но по моему переотображается вся таблица векторов исключительных ситуация с 0x0 по 0x1C и пусть меня тоже поправят гуру если я не прав.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...