Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Особенности своей OS.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Beginning
Пишу свой менеджер задач. Он весит на векторном прерывании. При сработки необходимо сохранить все регистры r0-r15 и CPSR в контекст задачи, и загрузить контекст новой задачи. В IRQ я легко могу добратся до всех регистров, кроме r13,r14 – они банкованые. Для того, что бы до их добраться, я переключаюсь в режим system, но при этом разрешается флаг IRQ и в этот момент могут сработать другие IRQ. Конечно, можно запретить все IRQ через VICIntEnClr, а потом восстановить. Есть ли более красивый способ добраться из IRQ до r13,r14 USER?
amw
При переключении в SYSTEM не разрешать прерывания.
Beginning
Весь смысл в том, что System эквивалентен USER и в нём в CPSR прерывании разрешены, так вот когда мы попадаем в system сразу же разрешаются прерывания.
scifi
Цитата(Beginning @ Sep 28 2007, 23:14) *
когда мы попадаем в system сразу же разрешаются прерывания.

Можете чем-то подкрепить это утверждение? Я убеждён, что это заблуждение.
Beginning
------------------
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.