Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: at91sam7 реализация многозадачности
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
srm
нужно реализовать многозадачность с использованием приоритетов. если что-то неправильно - поправьте. насколько я понимаю, нужно использовать Periodic Interval Timer. менеджер потоков хранит в субу есть список потоков. для каждого потока хранится информация: контекст (значения регистров, среди которых указатель стека, флаговый регистр, указатель текущей команды и пр.), преоритет. при срабатывании прерывания от Periodic Interval Timer менеджер сохраняет контекст прерванного потока, берёт следующший поток в списке, устанавливает для него Periodic Interval Value, восстанавливает контекст, передаёт управление (безусловным переходом?). затем снова ловит прерывание и т.д.
не совсем понятно как сохранять/восстанавливать контекст - тут скорее всего придётся вставлять ассемблерный код. и не понятно как завершать обработку прерывания...
aaarrr
А стоит ли изобретать велосипед? Может, для начала ознакомиться с портами для ARM многочисленных ОСей (FreeRTOS, scmRTOS, uCOS и т.п.)?
srm
Цитата(aaarrr @ Feb 2 2010, 02:06) *
А стоит ли изобретать велосипед? Может, для начала ознакомиться с портами для ARM многочисленных ОСей (FreeRTOS, scmRTOS, uCOS и т.п.)?

да я вообще-то и не изобретаю. теория интересна.
aaarrr
Ну вот как раз в плане изучения и стоит поковырять имеющееся.
Aurochs
+1.
IMHO cамый эффективный способ изучения - по уже готовой реализации.
srm
Цитата(Aurochs @ Feb 2 2010, 03:17) *
+1.
IMHO cамый эффективный способ изучения - по уже готовой реализации.

далеко не самый.
Genadi Zawidowski
Просмотр всей имеющейся информации иногда даёт пользу не только в идеях, но например в использовании устоявшейся в этой области терминологии.
Полезно посмотреть на разные архитектуры - понятнее станет, зачем надо отвязывать архитектурно-зависимые части от независимых. Вовсе не для того, чтобы облегчить перенос на другие архитектуры - для того, чтобы меньше ошибок было. Да и сам по себе перенос как средство выяявления ошибок тоже применятся может.
aaarrr
Цитата(srm @ Feb 2 2010, 21:04) *
далеко не самый.

Тогда изучайте архитектуру, чтобы не было вопросов и сомнений типа:
Цитата(srm @ Feb 1 2010, 23:52) *
...
безусловным переходом?
...
не совсем понятно как сохранять/восстанавливать контекст - тут скорее всего придётся вставлять ассемблерный код. и не понятно как завершать обработку прерывания...

И пишите свое. Тоже вариант.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.