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

 
 
> timeslicing в uCOS то есть внешнее управление не реалтаймовыми задачами, как сделать? может уже что-то есть такое готовое?
yes
сообщение Feb 15 2010, 13:00
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 198
Регистрация: 23-12-04
Пользователь №: 1 640



есть система, в которой реалтаймовая часть (прерывания, флаги/семафоры и т.п.) взаимодействует с некими вычислительными задачами, которые являются вычислениями и время завершения цикла неопределено и большое (ну и код соответственно большой/ветвистый и вставить в него ожидание каких-то событий типа OSSemPend трудно)

таких задач несколько, ну и также хочется, чтобы статистическая задача работала

кажется, что это можно сделать так :
в uCOS эти вычислительные задачи получают приоритеты ниже самой низкоприоритетной реал-таймовой задачи,
в задачу с высоким (наверно самым высоким) uCOS приоритетом вставляется "шедулер"
высокоприоритетная задача (uCOS priopity=1) срабатывает по периодическому таймеру,
в этой задаче суспендятся эти три вычислительные задачи и инкрементируется счетчик
каждое второе срабатывание запускается более приоритетная задача,
каждое четвертое со средним приоритетом
ну и каждое 8 - с низким
при этом приоритеты означают не приоритеты uCOS, а количество времени, которое процессор тратит на задачу
(возможно равномерное распределение - каждый тик одна задачка суспендится, одна запускается, но это не нужно)
остальное время выделено на статистическую+IDLE

ничего я тут не перемудрил?
будет это работать (предполагается использовать OSTaskSuspend(), OSTaskResume())?

может такая фигня есть уже в uCOS? (давно не имел дело с uCOS)
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 17th June 2025 - 03:38
Рейтинг@Mail.ru


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