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

 
 
> Особенности своей OS.
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
 
Start new topic
Ответов
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



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

 


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


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