реклама на сайте
подробности

 
 
> Пара вопросов по архитектуре
InsolentS
сообщение May 6 2008, 01:14
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



1) Как из супервизора обратиться к пользовательским CPSR и SP?
2) Можно ли как-нибудь отследить обращение пользователя к определенным адресам памяти?
Ассемблер и компилятор RV, ядро ARM7TDMI без MMU (SAM7..LPC).
Буду благодарен за любую информацию по теме.


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Rst7
сообщение May 6 2008, 12:00
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
А так нельзя?
Пробовать надо.


Для начала, надо внимательно читать документацию. Номер раз -
Цитата
Base register mode: For the purpose of address calculation, the base register is read from the current
processor mode registers, not the User mode registers.

Значит, годится STMxx SP,{R13}^

Но, имеем два -
Цитата
Banked registers: This instruction must not be followed by an instruction which accesses banked
registers (a following NOP is a good way to ensure this).


И три - нельзя writeback SP сделать

Значит, финальный вариант должен выглядеть так -
Код
SUB SP,SP,#4
STMEA SP,{R13}^
NOP
LDMFD SP!,{R0}


Цитата
Ещё небольшой вопрос - как современные оси, например, RTX отслеживают переполнение стека у пользовательской задачи без MMU?


За всех не отвечу, Nucleos при сборке с контролем стека банально внутри каждой ОСовской функции проверяет, не вышел ли стек за границу. Все. Полумера конечно, но бывает спасает.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
InsolentS
сообщение May 9 2008, 06:42
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 414
Регистрация: 8-06-06
Пользователь №: 17 897



Цитата(Rst7 @ May 6 2008, 18:00) *
Значит, финальный вариант должен выглядеть так -
Код
SUB SP,SP,#4
STMEA SP,{R13}^
NOP
LDMFD SP!,{R0}

Если честно, не совсем понял как работает этот код wacko.gif . Не могли бы Вы прокомментировать? Можно ли таким же макером достать пользовательский LR ?


--------------------
Курильщик даташитов со стажем
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- InsolentS   Пара вопросов по архитектуре   May 6 2008, 01:14
- - defunct   1). CPRS у Вас будет в SPSR. А SP можно получить т...   May 6 2008, 02:27
|- - KRS   Цитата(defunct @ May 6 2008, 06:27) А SP ...   May 6 2008, 06:40
|- - defunct   Цитата(KRS @ May 6 2008, 09:40) IMHO прощ...   May 6 2008, 09:28
- - amw   Цитата(InsolentS @ May 6 2008, 04:14) 1) ...   May 6 2008, 07:45
- - Rst7   Если не ошибаюсь, то метод получения USP в режиме ...   May 6 2008, 10:51
|- - KRS   Цитата(Rst7 @ May 6 2008, 14:51) Если не ...   May 6 2008, 11:24
|- - aaarrr   Цитата(KRS @ May 6 2008, 15:24) А так нел...   May 6 2008, 11:57
- - Rst7   ЦитатаА так нельзя? Пробовать надо. По поводу тог...   May 6 2008, 11:40
- - InsolentS   Всем огромное спасибо! Ещё небольшой вопрос - ...   May 6 2008, 11:55
|- - KRS   Цитата(InsolentS @ May 9 2008, 10:42) Есл...   May 9 2008, 15:38
- - Rst7   ЦитатаМожно ли таким же макером достать пользовате...   May 9 2008, 11:30
- - Rst7   ЦитатаSTMIA SP, {R13,R14} забыли ^ КодSTMIA SP, ...   May 9 2008, 19:31
|- - InsolentS   Цитата(Rst7 @ May 10 2008, 01:31) Без нее...   May 9 2008, 23:18
- - InsolentS   Есть ещё одна проблема, не стал создавать новую ве...   May 12 2008, 09:45
|- - amw   Цитата(InsolentS @ May 12 2008, 12:45) Ес...   May 12 2008, 10:14
- - aaarrr   Все правильно: в LR_irq сохраняется адрес возврата...   May 12 2008, 10:05
- - Rst7   ЦитатаЕсли прерывание возникает во время команды б...   May 12 2008, 10:12
- - InsolentS   Да, спасибо большое, разобрался :-) Более внимател...   May 12 2008, 10:13


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th August 2025 - 00:01
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016