Diablo 0 19 апреля, 2012 Опубликовано 19 апреля, 2012 · Жалоба Keil вообще намного проще для освоения для новичка, как мне кажется. Но ничего не поделаешь, надо пользоваться IARом :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
esaulenka 7 19 апреля, 2012 Опубликовано 19 апреля, 2012 · Жалоба Ну попробуйте переделать эту Вашу программу на кейл, может, проблема и всплывёт... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 20 апреля, 2012 Опубликовано 20 апреля, 2012 (изменено) · Жалоба Проверил адреса VIC/TIM0/GPIO0 - совпадают с lpc23xx Немного отличий в VIC - в lpc2294 меньше векторов прерываний Слегка подкорректировал VIC (надеюсь всё исправил правильно). Подкорректировал файл линкера под размер памяти в lpc2294 Убрал инициализацию PLL (не проверял, но думаю должно работать от встроенной RC-цепочки на 4 МГц) Светодиод вывел на GPIO0 пин 2 (как в примере) Скидываю Вам проект под iar5.40 У меня есть книга на английском Мартина Тревора - там описана организация векторных и невекторных прерываний. Но она весит 10МБ. Если у Вас нет могу скинуть по частям. book . . Изменено 20 апреля, 2012 пользователем mempfis_ Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diablo 0 20 апреля, 2012 Опубликовано 20 апреля, 2012 · Жалоба To mempfis_ Спасибо огромное, обязательно попробую этот пример. Что касается книги, то сам начал её недавно читать, очень доступно написано, кстати есть уже и на русском языке. To esaulenka Ну попробуйте переделать эту Вашу программу на кейл, может, проблема и всплывёт... Пробовал, проекты отличались только стартапом. Переносил недостающие части и Кейловского файла в свой, но увы... Наверное, кто-то затирает MEMMAP И вы совершенно правы :) Сегодня посмотрел JTAGом содержимое регистров после рестарта микроконтроллера. Значение MEMMAP = 3, т.е. режим использование внешней памяти, после записи в него 1 программа продолжает работу. Только мне в связи с этим непонятен один момент, если сразу после рестарта происходит ремап векторов во внешнюю память, то почему без проблем выполняется программа без использования прерываний? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mempfis_ 0 20 апреля, 2012 Опубликовано 20 апреля, 2012 · Жалоба И вы совершенно правы :) Сегодня посмотрел JTAGом содержимое регистров после рестарта микроконтроллера. Значение MEMMAP = 3, т.е. режим использование внешней памяти, после записи в него 1 программа продолжает работу. Только мне в связи с этим непонятен один момент, если сразу после рестарта происходит ремап векторов во внешнюю память, то почему без проблем выполняется программа без использования прерываний? При работе без прерываний не возникает исключительных ситуаций (FIQ, IRQ, Data Abort (пусть меня поправят гуру)), поэтому всё работет. У меня есть книга Тревора на русском в печатном виде. Но сам я пользуюсь в основном user manualи подглядываю в примеры. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Diablo 0 20 апреля, 2012 Опубликовано 20 апреля, 2012 · Жалоба При работе без прерываний не возникает исключительных ситуаций (FIQ, IRQ, Data Abort (пусть меня поправят гуру)), поэтому всё работет Я тоже точно не знаю, но по моему переотображается вся таблица векторов исключительных ситуация с 0x0 по 0x1C и пусть меня тоже поправят гуру если я не прав. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться