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

 
 
> at91sam7 реализация многозадачности
srm
сообщение Feb 1 2010, 20:52
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501



нужно реализовать многозадачность с использованием приоритетов. если что-то неправильно - поправьте. насколько я понимаю, нужно использовать Periodic Interval Timer. менеджер потоков хранит в субу есть список потоков. для каждого потока хранится информация: контекст (значения регистров, среди которых указатель стека, флаговый регистр, указатель текущей команды и пр.), преоритет. при срабатывании прерывания от Periodic Interval Timer менеджер сохраняет контекст прерванного потока, берёт следующший поток в списке, устанавливает для него Periodic Interval Value, восстанавливает контекст, передаёт управление (безусловным переходом?). затем снова ловит прерывание и т.д.
не совсем понятно как сохранять/восстанавливать контекст - тут скорее всего придётся вставлять ассемблерный код. и не понятно как завершать обработку прерывания...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 7)
aaarrr
сообщение Feb 1 2010, 21:06
Сообщение #2


Гуру
******

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



А стоит ли изобретать велосипед? Может, для начала ознакомиться с портами для ARM многочисленных ОСей (FreeRTOS, scmRTOS, uCOS и т.п.)?
Go to the top of the page
 
+Quote Post
srm
сообщение Feb 1 2010, 21:13
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501



Цитата(aaarrr @ Feb 2 2010, 02:06) *
А стоит ли изобретать велосипед? Может, для начала ознакомиться с портами для ARM многочисленных ОСей (FreeRTOS, scmRTOS, uCOS и т.п.)?

да я вообще-то и не изобретаю. теория интересна.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 1 2010, 21:29
Сообщение #4


Гуру
******

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



Ну вот как раз в плане изучения и стоит поковырять имеющееся.
Go to the top of the page
 
+Quote Post
Aurochs
сообщение Feb 1 2010, 22:17
Сообщение #5


Ортодокс
***

Группа: Свой
Сообщений: 219
Регистрация: 26-10-07
Из: Смела, Украина
Пользователь №: 31 775



+1.
IMHO cамый эффективный способ изучения - по уже готовой реализации.
Go to the top of the page
 
+Quote Post
srm
сообщение Feb 2 2010, 18:04
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 144
Регистрация: 27-12-09
Из: Пермь
Пользователь №: 54 501



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

далеко не самый.
Go to the top of the page
 
+Quote Post
Genadi Zawidowsk...
сообщение Feb 2 2010, 18:26
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1 620
Регистрация: 22-06-07
Из: Санкт-Петербург, Россия
Пользователь №: 28 634



Просмотр всей имеющейся информации иногда даёт пользу не только в идеях, но например в использовании устоявшейся в этой области терминологии.
Полезно посмотреть на разные архитектуры - понятнее станет, зачем надо отвязывать архитектурно-зависимые части от независимых. Вовсе не для того, чтобы облегчить перенос на другие архитектуры - для того, чтобы меньше ошибок было. Да и сам по себе перенос как средство выяявления ошибок тоже применятся может.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Feb 2 2010, 18:37
Сообщение #8


Гуру
******

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



Цитата(srm @ Feb 2 2010, 21:04) *
далеко не самый.

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

И пишите свое. Тоже вариант.
Go to the top of the page
 
+Quote Post

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

 


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


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