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

 
 
 
Reply to this topicStart new topic
Beginning
сообщение Sep 28 2007, 18:17
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Пишу свой менеджер задач. Он весит на векторном прерывании. При сработки необходимо сохранить все регистры r0-r15 и CPSR в контекст задачи, и загрузить контекст новой задачи. В IRQ я легко могу добратся до всех регистров, кроме r13,r14 – они банкованые. Для того, что бы до их добраться, я переключаюсь в режим system, но при этом разрешается флаг IRQ и в этот момент могут сработать другие IRQ. Конечно, можно запретить все IRQ через VICIntEnClr, а потом восстановить. Есть ли более красивый способ добраться из IRQ до r13,r14 USER?


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
amw
сообщение Sep 28 2007, 18:20
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847



При переключении в SYSTEM не разрешать прерывания.


--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть.
© Lewis Carroll. Alice's adventures in wonderland.
Go to the top of the page
 
+Quote Post
Beginning
сообщение Sep 28 2007, 19:14
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



Весь смысл в том, что System эквивалентен USER и в нём в CPSR прерывании разрешены, так вот когда мы попадаем в system сразу же разрешаются прерывания.


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post
scifi
сообщение Sep 28 2007, 19:21
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Beginning @ Sep 28 2007, 23:14) *
когда мы попадаем в system сразу же разрешаются прерывания.

Можете чем-то подкрепить это утверждение? Я убеждён, что это заблуждение.
Go to the top of the page
 
+Quote Post
Beginning
сообщение Sep 28 2007, 19:48
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 511
Регистрация: 24-08-07
Из: БРЕСТ
Пользователь №: 30 053



------------------

Сообщение отредактировал Beginning - Sep 28 2007, 20:07


--------------------
Если хочешь вбить гвоздь, не ищи обходных путей, просто бери молоток и бей по этому чёртовому гвоздю!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 00:04
Рейтинг@Mail.ru


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