|
User Mode Stack в обработчике исключения, LPC2378 Exceptions |
|
|
|
Feb 25 2008, 16:24
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Для примера и определения архитектуры: Процессор LPC2378, т.е. ARM7TDMI-S
Процессор работает в USER MODE. Происходит исключение, любое, UNDEF, PREFETCH ABTORT, DATA ABORT. Переходим в обработчик.
Вопрос: Как в обработчике исключения узнать значение регистра SP, из USER MODE? Нужно положить на вершину USER MODE стека значение полученное в обработчике EXCEPTION. В общем случае, нужно в обработчике исключения знать значене SP режима, в котором произошло это исключение.
Что-то в мануале на ARM найти не могу. Может кто ткнет в правильный мануал или пример.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
 |
Ответов
|
Feb 26 2008, 15:27
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(KRS @ Feb 26 2008, 13:10)  а не проще ли для этого использовать SWI эта инструкция вроде как и предназначена для системных вызовов. Действительно SWI проще. Но для его использования необходимо переписать все используемые в проекте библиотеки. И сильно переписать. Вариант с исключениями позволяет экономить время и не вносить свои глюки в чужие библиотеки.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Feb 27 2008, 08:42
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Сергей Борщ @ Feb 26 2008, 17:51)  Почему? Достаточно написать в исключении SWI чтение номера SWI из вызвавшей исключение инструкции, переключение в user(system) mode и ветвление по номеру swi на соответствующие библиотечные функции. Если-бы все так просто было  . У меня случай обратный. Нужно обеспечить библиотеке данные из написанного мной кода плюс сервисные функции, то-же написанные мной. Для реализации этого методом SWI нужно убедить правообладателя библиотеки переписать код, нужным мне спобом, что весьма затруднительно (и убедить и перписать). Библиотека не моя, распространяется за деньги и только в бинарном виде. Интерфейс библиотеки включает уже упомянутые мной таблицы с адресами.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
Сообщений в этой теме
amw User Mode Stack в обработчике исключения Feb 25 2008, 16:24 KRS Цитата(amw @ Feb 25 2008, 19:24) Процессо... Feb 25 2008, 16:32 amw Цитата(KRS @ Feb 25 2008, 18:32) IMHO в A... Feb 25 2008, 16:39 GetSmart Дык SP USER MODE виден (аппаратно!) только из ... Feb 25 2008, 16:46 zhevak Цитата(amw @ Feb 25 2008, 21:24) Нужно по... Feb 25 2008, 19:28 amw Цитата(zhevak @ Feb 25 2008, 21:28) Я изв... Feb 26 2008, 08:48  KRS Цитата(amw @ Feb 26 2008, 11:48) 2) - Реа... Feb 26 2008, 09:23   amw Цитата(KRS @ Feb 26 2008, 11:23) Вот это ... Feb 26 2008, 09:57 GetSmart Мне кажется, это иммитация вызова процедуры в USER... Feb 25 2008, 19:36 KRS Цитата(GetSmart @ Feb 25 2008, 22:36) Мне... Feb 25 2008, 19:45  aaarrr Цитата(KRS @ Feb 25 2008, 22:45) Да и воо... Feb 25 2008, 19:48     amw Цитата(KRS @ Feb 27 2008, 14:57) А что за... Feb 28 2008, 08:29
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|