|
scmRTOS - где семафоры? |
|
|
|
 |
Ответов
|
Jun 14 2005, 17:50
|

Частый гость
 
Группа: Свой
Сообщений: 146
Регистрация: 6-01-05
Из: Украина
Пользователь №: 1 831

|
Знаю что не влезет на мегу8, поэтому и ищу вариант для уже написанного кода в jacOS, и в силу некоторых причин надо на preemptive OS.
Напомню, что основный вопрос разногласий "а чем smсRTOS хуже ucos (по концепции построения)"
Вы все прекрасно понимаете.
Возмите API, посмотрите возможности ядра количество поддерживаемых задач - сколько вы будете делать bitmapsearch (поиск приоритета) для всех? Уснуть можно. EventFlag в 1 bit - и это полноценный флаг?, вы их наплодите ровно в 8 или 16 раз больше, и соответсвенно займете память. семафоры коды возврата вcех функций обращения по именам таймауты различные состояния задачи еще много чего ....
Принципы построения ядра, когда все задачи и очереди укладываются в байт или нужно орнанизовавать их список и по нему лазить - различаются существенно, и то что не надо для одной необходимо для другой.
Вы скажете что вам всего этого и не нужно, и правильно. Если покупаете запорожец, то вы знаете зачем и для чего он вам нужен, а вы пытаетесь впарить его как мерс. Как smcRTOS запорожец по отношению ucos, так и оная тоже самое по отношению скажем mITRON.
Просто надо в документации нормально объяснить эти моменты, что все только ради максимального уменьшения и простоты кода, и в результате вы получите сильно обрезанное API, всем понятно, все юзают и довольны.
Сам юзер должен решать что ему нужно, подставляя небходимые ему опции компиляции, и получая ядро с теми возможностями, которые ему нужны и желательно из всего типового API. А так получается что даже для целей обучения, несмотря на ясность и элегантность кода, полноценно нельзя использовать, ввиду отсутствия стандартных элементов синхронизации. Назовите хотя бы одну OC без семафора - элементарного элемента синхронизации, и полноценно поддержать который можно только на уровне ядра. Или "Такое планирование несколько сложнее простого приоритетного, а преимущества как-то не особенно заметны." А что плохово в том, что задачи одного приоритета крутятся по Round-Robin, не хочешь - не используй, а равноправных задач в проекте тоже может быть достаточно.
Вот после устранения указанных недочетов (и конечно портируемости) она действительна станет серьезным конкурентом ucos. И проблем переписать ее на простом C для улучшения портируемости нет никаких, только вся целостность как ОС сразу пропадет. Кстати bitmapserch в нормальных процессорах эта одна ассемблерная команда за один такт, здесь в том же ucos прощелкали, эту возможность, чтобы вынесте ее в порт.
Насчет макроса, здесь я ошибся, использую свой порт, а там от оригинального ucos мало чего осталось, но такая возможность принципиально есть.
Про прерывание я имел ввиду случай, когда не надо будет переключать контекст при ввходе/выходе, в smcRTOS это обязательно, независимо от будет ли выполняться само переключение, таких ситуаций в жизни предостаточно.
Воспринимайте сказанное как стороннюю оценку, насколько объективную вы сами решите, мне по большому счету побарабану, я просто высказываю свое мнение. И кстати почему то все солидные фирмы скромно называют свою embedded RTOS - или кернелом или биосом и только новоиспеченные кричат о свох продуктах как о OS, до которой в полном смысле этого слова им ... . smcKernel отражало внутренности гораздо вернее. Даже в ucos потом дописали "Real-Time kernel".
|
|
|
|
Сообщений в этой теме
bmf scmRTOS - где семафоры? Jun 9 2005, 09:09 ig_z Цитата(bmf @ Jun 9 2005, 12:09)Хотел попробов... Jun 9 2005, 10:23 bmf ЦитатаТак ведь автор вполне ясно сказал, что семаф... Jun 9 2005, 12:24 ig_z Цитата(bmf @ Jun 9 2005, 15:24)ЦитатаТак ведь... Jun 9 2005, 13:58 dxp Цитата(bmf @ Jun 9 2005, 18:24)ЦитатаТак ведь... Jun 10 2005, 06:25 bmf В доке к версии 2.0 такого обзаца нет.
Думаю что к... Jun 9 2005, 14:41 dxp Цитата(bmf @ Jun 9 2005, 20:41)В доке к верси... Jun 10 2005, 06:38 IgorKossak Цитата(bmf @ Jun 9 2005, 17:41)В доке к верси... Jun 17 2005, 11:17  dxp Цитата(IgorKossak @ Jun 17 2005, 17:17)А чем,... Jun 20 2005, 04:14 bmf ЦитатаНадо бы уточнить, что Вы понимаете под терми... Jun 10 2005, 08:42 dxp Цитата(bmf @ Jun 10 2005, 14:42)ЦитатаНадо бы... Jun 10 2005, 09:57 bmf Спасибо за идеи.
В принципе если есть исходники, т... Jun 10 2005, 11:41 dxp Цитата(bmf @ Jun 10 2005, 17:41)Дя и сомнения... Jun 10 2005, 12:09 bmf Не знаю, впринципе всего десяток функций, там и со... Jun 10 2005, 12:59 dxp Цитата(bmf @ Jun 10 2005, 18:59)Не знаю, впри... Jun 10 2005, 13:28 bmf Ну например, для тойже uCos - реакция на прерывани... Jun 10 2005, 16:57 dxp Цитата(bmf @ Jun 10 2005, 22:57)Ну например, ... Jun 14 2005, 06:00 bmf И еще, посмотрите как в uCos ищется самая приорите... Jun 10 2005, 19:39 dxp Цитата(bmf @ Jun 11 2005, 01:39)И еще, посмот... Jun 14 2005, 06:20 bmf А если реализовывать по честному семафоры (как в т... Jun 11 2005, 09:22 dxp Цитата(bmf @ Jun 11 2005, 15:22)А если реализ... Jun 14 2005, 06:32 dxp Цитата(bmf @ Jun 14 2005, 23:50)Знаю что не в... Jun 15 2005, 05:47 dxp Цитата(bmf @ Jun 14 2005, 23:50)Просто надо в... Jun 15 2005, 05:51 dxp Цитата(bmf @ Jun 14 2005, 23:50)И проблем пер... Jun 15 2005, 06:53 bmf На каждый ваш лист, я смогу аргументированно ответ... Jun 15 2005, 17:25 bmf Теперь о позитиве.
ЦитатаОна никогда не станет ко... Jun 17 2005, 05:12 bmf Придется его такой и использовать.
Просто в оригин... Jun 17 2005, 12:52 bmf Да все уже получилось не так, как вначале задумавы... Jun 21 2005, 17:39
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|