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

 
 
> CPSR_c в 00000
romez777
сообщение Sep 19 2008, 00:36
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Приветствую.

Достался в наследство (к сожалению с минимумом документации; прежние разработчики также не уцелели smile.gif) простой бутлоадер для arm926ej-s платформы. Бут после инициализации чипа передает управление uC-OS/II.

И в начале после таблицы векторов наткнулся вот на такой код:

mrs r0, CPSR
orr r0, r0, #0xc0
msr cpsr_c, r0

(... далее здесь идет сброс кеша, инит MMU и пр. манипуляции )

Т.е. читаем cpsr и сбрасываем режим процессора в 00000. Непонятен смысл этого действия, может быть есть какое-то логическое обоснование?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
GetSmart
сообщение Sep 19 2008, 03:14
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Код
orr r0, r0, #0xc0

Эта команда (ORR) физически не умеет сбрасывать биты. Здесь она устанавливает 6-ой и 7-ой биты (от нуля) в "1", то есть биты запрета IRQ и FIQ (по крайней мере в ARM7) тем самым запрещая обработку всех прерываний.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
romez777
сообщение Sep 19 2008, 04:39
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 292
Регистрация: 9-11-04
Пользователь №: 1 077



Цитата(GetSmart @ Sep 19 2008, 06:14) *
Код
orr r0, r0, #0xc0

Эта команда (ORR) физически не умеет сбрасывать биты. Здесь она устанавливает 6-ой и 7-ой биты (от нуля) в "1", то есть биты запрета IRQ и FIQ (по крайней мере в ARM7) тем самым запрещая обработку всех прерываний.


Блин! Я совсем забыл, что это логический OR, а не AND - тогда все сходится smile.gif Спасибо, что сняли с ручника.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 23:30
Рейтинг@Mail.ru


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