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

 
 
10 страниц V  « < 7 8 9 10 >  
Reply to this topicStart new topic
> Вопросы по scmRTOS
a9d
сообщение Apr 10 2010, 20:03
Сообщение #121


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



И так, как реализовать свой планировщик процессов я уже понял.
Его можно реализовать на основе самого приоритетного процесса. Это дает:
-не нужно переписывать ядро
-этот процесс не вещают бесконечные циклы в менее приоритетных процессах. Проверено.
-из этого процесса удобно отправлять другие процессы в спячку.

Осталось только реализовать диспечер)))

Вопросы:
IdleProcess что точно он делает и зачем он нужен?
В документации так и ненашол, понятного обьяснения, по поводу использования прерывания компоратора. Как это использовать?
Существует ли более подробная документация? В операционке заметил функции и параметры которые нигде не описаны.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Apr 10 2010, 20:32
Сообщение #122


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(a9d @ Apr 10 2010, 23:18) *
IdleProcess что точно он делает и зачем он нужен?

Я обычно в этом процессе повергаю контроллер в спячку.
Go to the top of the page
 
+Quote Post
a9d
сообщение Apr 10 2010, 22:09
Сообщение #123


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



Возникла проблемка. А как из одного усыпить другой процесс?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 10 2010, 23:14
Сообщение #124


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(a9d @ Apr 10 2010, 22:18) *
И так, как реализовать свой планировщик процессов я уже понял.
Итак(слитно). А смысл? Вы пока еще не поняли основных принципов вытесняющей многозадачности, но уже пишете свой планировщик. В вашем случае достаточно организовать в прерывании UART запись в канал, а в функции receiveByte() читать из этого канала. Передачу управления сделает сама ОС внутри функций канала. Вы же, образно говоря, пытаетесь запрячь лошадь в автомобиль и возмущаетесь, что и лошади тяжело и автомобиль движется медленно.
Цитата(a9d @ Apr 10 2010, 22:18) *
IdleProcess что точно он делает и зачем он нужен?
Он работает, когда все остальные процессы спят. Часто используется для перевода ядра в спящий режим для снижения энергопотребления. А что в обычной программе делает процессор когда ему нечего делать полезного?
Цитата(a9d @ Apr 10 2010, 22:18) *
В документации так и ненашол, понятного обьяснения, по поводу использования прерывания компоратора.
не<пробел>нашел, компаратора, перебор с запятыми. Объяснение в документации есть - для переключения контекста нужно генерить какое-либо прерывание программно. Один из способов получения такого прерывания - дергать ногой, к которой внутри подключен вход компаратора. Второй возможный вариант - прерывание SPM, тоже есть в примерах.
Цитата(a9d @ Apr 10 2010, 22:18) *
Как это использовать?
Что использовать? Что вы не нашли объяснения?
Цитата(a9d @ Apr 10 2010, 22:18) *
Существует ли более подробная документация? В операционке заметил функции и параметры которые нигде не описаны.
Нет. Более подробной нет. Все функции, которые предназначены для использования пользователем - описаны. Неописанные функции используются внутри реализации ОС. Они нужны разработчикам самой ОС для реализации ее внутренностей, снабжены комментариями или самодокументированы своим кодом. Не предназначены для использования "снаружи" ОС.
Цитата(a9d @ Apr 11 2010, 00:24) *
Возникла проблемка. А как из одного усыпить другой процесс?
Никак.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
a9d
сообщение Apr 11 2010, 07:35
Сообщение #125


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



В случае с UART использовать канал удобно. Но это частный случай.
Основная идея это чтоб бесконечный цикл в приоритетном процессе не вешал менее приоритетные процессы и менее приоритетный мог получить управление.

Функцию отправки другой процесс в спячку реализовал. Пришлось написать свою функцию Sleep.

А вот документация устарела.
Например где описано:
#define scmRTOS_ISRW_TYPE TISRW //_SS
#define scmRTOS_IDLE_PROCESS_STACK_SIZE 90 -- Почему 90 байт?
#define scmRTOS_CONTEXT_SWITCH_USER_HOOK_ENABLE 1 -- Это и так понятно.

TMutex t;
t.UnlockISR(); -- Это что за анлок?

Сообщение отредактировал a9d - Apr 11 2010, 07:37
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 11 2010, 08:31
Сообщение #126


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(a9d @ Apr 11 2010, 09:50) *
Основная идея это чтоб бесконечный цикл в приоритетном процессе не вешал менее приоритетные процессы и менее приоритетный мог получить управление.

Да, полный мрак sad.gif. Действительно 100% sad.gif совпадение с ситуацией из анекдота:
Цитата
Привезли в колхоз первый трактор.
Долго объясняли условия эксплуатации, принцип действия, схему управления а потом спросили:
- Вопросы есть?
Встает мужик:
- Да, понятно все! Только я одно не понял - куда лошадь запрягать?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Apr 11 2010, 09:43
Сообщение #127


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



А это очередная иллюстрация такого "нового" подхода к жизни. Все вокруг ..., а я умнее всех и сейчас все быстренько наваяю. При этом не удосуживаются ни книг толковых почитать, ни к мнению коллег прислушаться. Такая вот c'est la vie.
Go to the top of the page
 
+Quote Post
a9d
сообщение Apr 11 2010, 10:22
Сообщение #128


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



scmRTOS простая операционка. В ней можно быстро разобраться.

Но мне нужен немного другой планировщик процессов. Я не говорил что он лучше, хуже и т.п.
Если после небольших изменений операционка перестанет соответствовать RTOS, то мне это пофигу.

Главное это рабочая прошивка. Не важно на сколько она будет корректной или нет. Главное это простота и работоспособность.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Apr 11 2010, 10:29
Сообщение #129


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(a9d @ Apr 11 2010, 09:50) *
В случае с UART использовать канал удобно. Но это частный случай.
1)Большая программа складывается из частных случаев.
2)В программе не должно быть циклических опросов - ожиданий.
Цитата(a9d @ Apr 11 2010, 09:50) *
А вот документация устарела.
НапИшите более новую?
Цитата(a9d @ Apr 11 2010, 09:50) *
t.UnlockISR(); -- Это что за анлок?
А попробуйте немного подумать. Если TEventFlag::SendISR() взводит флаг из прерывания, message::sendISR() посылает сообщение из прерывания, то что, исходя из своего названия, должен делать TMutex::UnlockISR()?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
a9d
сообщение Apr 11 2010, 11:13
Сообщение #130


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



Я не разработчик scmRTOS поэтому не мне писать.
Если вносите поправки и дополнения в операционку то и где нибудь об этом сообщайте. А не зативайте игр "Угадай мелодию".

ЗЫ: Тема топика "Вопросы по scmRTOS".

Сообщение отредактировал a9d - Apr 11 2010, 11:14
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 11 2010, 11:20
Сообщение #131


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(a9d @ Apr 11 2010, 12:37) *
scmRTOS простая операционка. В ней можно быстро разобраться.

Беда в том, что Вы совсем совсем не разобрались, причем не scmRTOS, а вообще, как системами-то пользуются. И похоже не собираетесь, поскольку, опять цитирую:
Цитата
Основная идея это чтоб бесконечный цикл в приоритетном процессе не вешал менее приоритетные процессы и менее приоритетный мог получить управление.

Это отвал башки какой-то. Если в системе есть приоритеты, то они ДОЛЖНЫ РАБОТАТЬ и никакой процесс с высоким приоритетом не может быть прерван процессом с низким приоритетом (только равным, или в результате инверсии приоритетов при разруливании доступа к ресурсам, но этого в scmRTOS нет ), ибо обратное ПЕРЕЧЕРКИВАЕТ ВСЮ систему. Как только, Вам в голову пришла вышеотцитированная "концепция", следует СРАЗУ забыть о вытесняющей многозадачности, слове приоритеты и взяв "чистый лист бумаги" ваять что в голову придет абы работало. Что собственно Вы и делаете, только зачем-то всуе поминая scmRTOS.



Цитата(a9d @ Apr 11 2010, 13:28) *
ЗЫ: Тема топика "Вопросы по scmRTOS".

Только Ваши "идеи" к теме топика отношения не имеют sad.gif, как и лошадь к трактору.
To:Сергей Борщ - Вынести этот разговор куда-нибудь подальше?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
a9d
сообщение Apr 11 2010, 11:22
Сообщение #132


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



Та не волнуйтесь вы так. Я scmRTOS взял за основу. Потому что в ней было проще разобраться.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Apr 11 2010, 12:07
Сообщение #133


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(a9d @ Apr 11 2010, 15:37) *
Я scmRTOS взял за основу. Потому что в ней было проще разобраться.


Вот это вы правильно заметили. В том и изюмина scmRTOS - простота для понимания, как все устроено. Но в основе этой "простоты" хорошо продуманная концепция, отличное знание С++, внятная документация и главное опыт разрабочика. Вот его то вам пока и не хватает.
Go to the top of the page
 
+Quote Post
a9d
сообщение Apr 11 2010, 12:30
Сообщение #134


Местный
***

Группа: Участник
Сообщений: 312
Регистрация: 9-04-10
Пользователь №: 56 532



Я не говорил, что имею большой опыт работы с операционкой. Да и вообще с ООП не так часто общаюсь как хотелось.

У меня задача разработать прошивку которая будет очень простой. Ее будут модифицировать и дорабатывать другие люди. У меня нет никакого желания писать очень подробную документацию к прошивке и общаться с каждым новым разработчиком.
scmRTOS позволяет красиво оформить код.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Apr 11 2010, 12:35
Сообщение #135


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

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(a9d @ Apr 11 2010, 16:45) *
Я не говорил, что имею большой опыт работы с операционкой. Да и вообще с ООП не так часто общаюсь как хотелось.

У меня задача разработать прошивку которая будет очень простой. Ее будут модифицировать и дорабатывать другие люди. У меня нет никакого желания писать очень подробную документацию к прошивке и общаться с каждым новым разработчиком.
scmRTOS позволяет красиво оформить код.


Почему-то вы решили, что другие люди сходу разберутся в "красиво оформленном" коде под scmRTOS, если сами не понимаете и не хотите понять, как она работает?

P.S Самая красивая прошивка - n-байт 0xFF! Изумительное чудо.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 18th July 2025 - 16:55
Рейтинг@Mail.ru


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