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

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Разбиение задачи на процессы
Harvester
сообщение Oct 22 2009, 05:11
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Продолжаю бороться с RTOS biggrin.gif
Очередная задача - реализация часов/календаря. Разработчик uCOS в своей книге "Building System Blocks" предлагает 2 подхода:
1. Задержка процесса на 1 с - плохо в нагруженной системе
2. Внедрение счетчика+семафора в прерывание системного таймера.

Мне не хочется модифицировать ядро системы, как того требует 2-й вариант. Поэтому возникли еще две идеи:
3. Использование программного таймера + семафор в callback функции.
4. Использование отдельного аппаратного таймера и прерывания от него.
Насколько я понимаю, вариант 3 практически не отличается от варианта 2, ведь программные таймеры тоже обрабатываются
в системном прерывании. Но тогда непонятно, почему этот вариант не представлен автором. Может я чего-то упускаю?

А вообще, хотелось бы разработать универсальный модуль, способный работать как без оси, так и с оной (наподобие того, как это сделано в стеке lwIP).


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post
HARMHARM
сообщение Oct 23 2009, 20:42
Сообщение #17


читатель даташитов
****

Группа: Свой
Сообщений: 853
Регистрация: 5-11-06
Из: Днепропетровск
Пользователь №: 21 999



Цитата(Harvester @ Oct 22 2009, 08:11) *
1. Задержка процесса на 1 с - плохо в нагруженной системе
2. Внедрение счетчика+семафора в прерывание системного таймера.

Неужели за целую секунду не найдется времени увеличить несколько счетчиков?
Если рассматривать FreeRTOS, то при использовании vTaskDelayUntil проблем нет.
Go to the top of the page
 
+Quote Post
Harvester
сообщение Oct 26 2009, 06:50
Сообщение #18


Местный
***

Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846



Цитата(HARMHARM @ Oct 23 2009, 23:42) *
Неужели за целую секунду не найдется времени увеличить несколько счетчиков?
Если рассматривать FreeRTOS, то при использовании vTaskDelayUntil проблем нет.

Мне тоже так кажется. Просто Лабросс в своей книге очень убедительно доказывает,
что использование задержки процесса не позволяет обеспечить нужную точность при наличии
большого числа высокоприоритетных процессов. Потому и спрашиваю.
Что ж, попробую разные подходы


--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 2nd August 2025 - 23:32
Рейтинг@Mail.ru


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