Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Подскажите по прерываниям в ARM в примере Hаllow.+++

Отправлено dshabrov (95.220.88.38) 11 марта 2011, г. 11:00


В этом примере два прерывания. Внешнее и внутреннее(интервальный таймер).

Внутреннее прерывание - функция system_int, ссылка на которую и программируется в соответствующий AIC_SVR. Написана на Си.
pAIC->AIC_SVR[AT91C_ID_SYS] = (unsigned long) system_int;

Вход в эту функцию system_int - STMDB R13!,{R0-R5,R12,R14}, выход - LDMIA R13!,{R0-R5,R12,R14}. Без переключения режимов.

Тут непонятно - почему не выполняются процедуры переключения режима. Как описано в ДШ.

Внешнее прерывание выполняется по - другому. Ссылка на ассемблерную вставку irq0_int программируется в соответствующий AIC_SVR. Эта вставка делает сохранение регистров, переключение режима как написано в ДШ.

Почему при внутреннем прерывании такой вставки не делается?? Получается что это прерывание выполняется в User mode. Так можно делать или это считается неправильным??

Спасибо.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
сложите три и три:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru