Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Описание стека в LPC2xxx
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
JeDay
У кого есть юзер-мануалы по данное тематике? В полных даташитах и описании АРМ ядра этого ненашел. Как адреса возврата сохраняются при вложенных прерываниях и функциях ?
zltigo
Цитата(JeDay @ Feb 23 2006, 22:43) *
В полных даташитах и описании АРМ ядра этого ненашел. Как адреса возврата сохраняются при вложенных прерываниях и функциях ?

У ARM на стек возврат не завязан - как сделаете (или Ваш компилятор сделает) так и будет.
aaarrr
Цитата(JeDay @ Feb 23 2006, 23:43) *
У кого есть юзер-мануалы по данное тематике? В полных даташитах и описании АРМ ядра этого ненашел. Как адреса возврата сохраняются при вложенных прерываниях и функциях ?


При вызове функции адрес возврата заносится в Link Register (LR, R14).
Далее сама функция может действовать двумя способами:
1. Не модифицировать LR и не вызывать другие функции командой BL.
2. Сохранить LR в стеке, или где-либо еще, и восстановить перед выходом.
Организация и работа вложенных прерываний хорошо описана в мануале на VIC
(Vectored Interrupt Controller), лежит на arm.com.
JeDay
т.е. если пишу на СИ вложенные функции, компилятор сам сохраняет LR в памяти а потом восстанавливает обратно(я на асме еще не пробовал писать) ?
В кейловском startup.s есть инициализация стеков для различных режимов. Это указатели на разные участки памяти в которые будет производиться програмное сохранение LR ?
aaarrr
Да, все верно.
zltigo
Цитата(JeDay @ Feb 24 2006, 17:03) *
В кейловском startup.s есть инициализация стеков для различных режимов. Это указатели на разные участки памяти в которые будет производиться програмное сохранение LR ?

Стек для хранения "чего угодно" в том числе, если вдруг захочется, и LR.
А если не захочется, то хранить можно еще:
- в другом регистре;
- в какой-то другой памяти;
Обязаловки в этом вопросе в ARM нет по определению.
JeDay
Спасибо за помощь.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.