srm 0 1 февраля, 2010 Опубликовано 1 февраля, 2010 · Жалоба нужно реализовать многозадачность с использованием приоритетов. если что-то неправильно - поправьте. насколько я понимаю, нужно использовать Periodic Interval Timer. менеджер потоков хранит в субу есть список потоков. для каждого потока хранится информация: контекст (значения регистров, среди которых указатель стека, флаговый регистр, указатель текущей команды и пр.), преоритет. при срабатывании прерывания от Periodic Interval Timer менеджер сохраняет контекст прерванного потока, берёт следующший поток в списке, устанавливает для него Periodic Interval Value, восстанавливает контекст, передаёт управление (безусловным переходом?). затем снова ловит прерывание и т.д. не совсем понятно как сохранять/восстанавливать контекст - тут скорее всего придётся вставлять ассемблерный код. и не понятно как завершать обработку прерывания... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 1 февраля, 2010 Опубликовано 1 февраля, 2010 · Жалоба А стоит ли изобретать велосипед? Может, для начала ознакомиться с портами для ARM многочисленных ОСей (FreeRTOS, scmRTOS, uCOS и т.п.)? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
srm 0 1 февраля, 2010 Опубликовано 1 февраля, 2010 · Жалоба А стоит ли изобретать велосипед? Может, для начала ознакомиться с портами для ARM многочисленных ОСей (FreeRTOS, scmRTOS, uCOS и т.п.)? да я вообще-то и не изобретаю. теория интересна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 1 февраля, 2010 Опубликовано 1 февраля, 2010 · Жалоба Ну вот как раз в плане изучения и стоит поковырять имеющееся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aurochs 0 1 февраля, 2010 Опубликовано 1 февраля, 2010 · Жалоба +1. IMHO cамый эффективный способ изучения - по уже готовой реализации. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
srm 0 2 февраля, 2010 Опубликовано 2 февраля, 2010 · Жалоба +1. IMHO cамый эффективный способ изучения - по уже готовой реализации. далеко не самый. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GenaSPB 11 2 февраля, 2010 Опубликовано 2 февраля, 2010 · Жалоба Просмотр всей имеющейся информации иногда даёт пользу не только в идеях, но например в использовании устоявшейся в этой области терминологии. Полезно посмотреть на разные архитектуры - понятнее станет, зачем надо отвязывать архитектурно-зависимые части от независимых. Вовсе не для того, чтобы облегчить перенос на другие архитектуры - для того, чтобы меньше ошибок было. Да и сам по себе перенос как средство выяявления ошибок тоже применятся может. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 2 февраля, 2010 Опубликовано 2 февраля, 2010 · Жалоба далеко не самый. Тогда изучайте архитектуру, чтобы не было вопросов и сомнений типа: ... безусловным переходом? ... не совсем понятно как сохранять/восстанавливать контекст - тут скорее всего придётся вставлять ассемблерный код. и не понятно как завершать обработку прерывания... И пишите свое. Тоже вариант. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться