Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: IRQ
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
серый волк
Вопрос

будет ли при входе в СИ функцию, объявленную как обработчик прерывания,
произведено сохранение регистров R0...R12 в стек автоматически?

спасибо
a3r3
Да, но только тех, которые модифицируются в данной функции.
серый волк
спасибо

т.е. автоматически запоминаются только те , которые используются
в данной функции, скажем R0,R1
alexander55
Цитата(серый волк @ Sep 4 2007, 12:56) *
Вопрос

будет ли при входе в СИ функцию, объявленную как обработчик прерывания,
произведено сохранение регистров R0...R12 в стек автоматически?

спасибо

При входе в прерывание из режима User будут использоваться другие регистры R0...R12. При выходе будут опять использоваться User регистры R0...R12. Поэтому спасать, а потом восстанавливать их не надо. Другое дело, если Вы будете использовать вложенные прерывания IRQ... десять раз подумайте нужно ли это Вам.

Цитата(a3r3 @ Sep 4 2007, 13:12) *
Да, но только тех, которые модифицируются в данной функции.

Вы меня поставили в недоумение.

Цитата(серый волк @ Sep 4 2007, 13:25) *
спасибо

т.е. автоматически запоминаются только те , которые используются
в данной функции, скажем R0,R1

Они просто все другие (и которые используете в том числе).
DASM
А мне казалось, что при переходе из USER в IRQ банкуются только R13 и R14 + SPSR , А при переходе из USER (равно как и из supervisor, abort и undefined) в FIQ только R8..R14 + SPSR... Пайду пить воттку, коли неуч я такой
серый волк
to DASM

вот мне тоже это и казалось
я теперь тоже в непонятках.....sad.gif
DASM
ARM DDI 0234A тоже так казалось.... есть повод выпить с разработчиками ;-)
серый волк
так с чем соглашаться? smile.gif
DASM
Я полагаю все люди на Земле должны быть согласны со мной :-))
alexander55
To Dasm и Серый волк.
Не расстраивайтесь, главное, чтобы в голове не было каши.
А я думал коты и серые волки водку не пьют.
Если я не прав, поправьте меня (я буду Вам очень благодерен), я всегда признаю ошибки (и не упираюсь).
DASM
Так кашу не мы заварили :-)) Ставим вопрос на голосование или будут другие предложения ? =)))
amw
Цитата(DASM @ Sep 4 2007, 13:21) *
ARM DDI 0234A тоже так казалось.... есть повод выпить с разработчиками ;-)

Смотри Figure 2-3 Register organization in ARM state.
Все, что с закрашеным уголком имеет копию для указанного режима. Все, что без закрашенного уголка - нужно сохранять.
Заодно пересчитайте регистры. Всего их должно быть:
The ARM7TDMI-S processor has a total of 37 registers:
Это написано чуть выше означенной фигуры.
DASM
Да я это как бы понял, просто думал как бы деликатнее преподнести :-)))
alexander55
Цитата(DASM @ Sep 4 2007, 14:49) *
Так кашу не мы заварили :-)) Ставим вопрос на голосование или будут другие предложения ? =)))

Я предлагаю взять тайм-аут на сутки и проработать вопрос. Вопрос теоретический и где-нибудь может так всплыть, мало не покажется. Я сейчас пока не могу - на работе срочно надо допроверять контроллеры, это продлится до конца этой недели (только дома можно). Конечно компилятор - не дурак, сам хорошо со всем справляется, но для меня истина дороже.
a3r3
Давайте еще обсуждение на N страниц закатаем smile.gif
Не нужен тайм-аут - DASM прав.
DASM
bb-offtopic.gif ну вот.. а как же огурчики маринованные, доработать бы надо... crying.gif
серый волк
Цитата(alexander55 @ Sep 4 2007, 14:47) *
To Dasm и Серый волк.
Не расстраивайтесь, главное, чтобы в голове не было каши.
А я думал коты и серые волки водку не пьют.
Если я не прав, поправьте меня (я буду Вам очень благодерен), я всегда признаю ошибки (и не упираюсь).


Да не прав! Поправляю. Еще как пьют! beer.gif
alexander55
Цитата(amw @ Sep 4 2007, 14:56) *
Смотри Figure 2-3 Register organization in ARM state.
Все, что с закрашеным уголком имеет копию для указанного режима. Все, что без закрашенного уголка - нужно сохранять.
Заодно пересчитайте регистры. Всего их должно быть:
The ARM7TDMI-S processor has a total of 37 registers:
Это написано чуть выше означенной фигуры.

Я был не прав. Громадное спасибо, что поправили.
amw
Цитата(alexander55 @ Sep 4 2007, 14:27) *
Я был не прав. Громадное спасибо, что поправили.

Рад помочь.
А вообще ьакой вопрос задают мне студенты, каждый раз, не зависимо от того как объяснять. А прведенный ответ быстро и наглядно приводит к усвоению материала yeah.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.