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

 
 
> scmRTOS - где семафоры?
bmf
сообщение Jun 9 2005, 09:09
Сообщение #1


Частый гость
**

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



Хотел попробовать, стал разбираться и не нашел семафоров.
Может я чего не понял?
Есть TEventFlag - но это немножко другое (после "сигнала" все процессы,
ожидающие указанное событие, будут переведены в состояние готовых к выполнению)
Более похож TMutex - но тоже вроде не то.
Кто работал? В чем фишка?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
bmf
сообщение Jun 9 2005, 12:24
Сообщение #2


Частый гость
**

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



Цитата
Так ведь автор вполне ясно сказал, что семафоры в любом виде совершенно бесполезны

Блин. Нет такого в доке.
И не может быть.
Наоборот из ядра и семафоров можно сделать все остальное. Это базовые составляющие минимального размера. В принципе и мне нужно только ядро и семофор, кстати часто вызываемый из прерывания (и в других ОС специально делается легковесный код семафора для вызова из прерывания, чтобы не нагружать стек, здесь такого нет).

Надо дудет разбираться в исходниках: может вместо семафора он подрузамевает TEventFlag (хотя по устоявшейся терминологиии это должны быть разные вещи)

Вообще не умаляя достоинств автора, чувствуется некоторая безапеляционность в сужденияж
Как то:
Цитата
Второй «кривой» момент AVR – это его убогий указатель
стека....
.....
1 Интересно, куда они смотрели, когда два норвега разрабатывали сам МК, ведь по информации от про-
изводителя AVR разрабатывался как процессор, ориентированный на применение его с языками высоко-
го уровня и в тесном сотрудничестве с фирмой-разработчиком компиляторов ЯВУ для МК???

Типа: Ну конечно они дураки, а мы умней
Go to the top of the page
 
+Quote Post
dxp
сообщение Jun 10 2005, 06:25
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(bmf @ Jun 9 2005, 18:24)
Цитата
Так ведь автор вполне ясно сказал, что семафоры в любом виде совершенно бесполезны

Блин. Нет такого в доке.

Есть. smile.gif

Цитата(bmf @ Jun 9 2005, 18:24)
И не может быть.
Наоборот из ядра и семафоров можно сделать все остальное. Это базовые составляющие минимального размера. В принципе и мне нужно только ядро и семофор, кстати часто вызываемый из прерывания (и в других ОС специально делается легковесный код семафора для вызова из прерывания, чтобы не нагружать стек, здесь такого нет).

Надо бы уточнить, что Вы понимаете под термином "семафар". Мутекс - семфор. И флаг события тоже семафор. Нет счетных семафоров? Да, нету. А они нужны? Приведите реальный пример на мелкой однокристаллке, где они нужны.

Цитата(bmf @ Jun 9 2005, 18:24)
Вообще не умаляя достоинств автора, чувствуется некоторая безапеляционность в сужденияж
Как то:
Цитата
Второй «кривой» момент AVR – это его убогий указатель
стека....
.....
1 Интересно, куда они смотрели, когда два норвега разрабатывали сам МК, ведь по информации от про-
изводителя AVR разрабатывался как процессор, ориентированный на применение его с языками высоко-
го уровня и в тесном сотрудничестве с фирмой-разработчиком компиляторов ЯВУ для МК???

Типа: Ну конечно они дураки, а мы умней
*


А что, не так, что-ли? AVR (ядро) по некоторым данным разработатли два студента из Норвегии. И задумка у них неплохая была, но вот реализация подкачала. Вот этот самый указатель стека - совершенно убогий! Ведь именно из-за этого IAR городит отдельный стек для данных. Два стека - это криво, преимуществ никаких, одни недостатки. А ведь будь указатель стека нормальный, то и не было бы никакой необходимости в отдельном стеке данных. Для стека данных нужно, чтобы указатель стека поддерживал расширенные режимы адресации (со смещениями) и адресную арифметику. Т.е. по-нормальному указатель стека должен быть регистровой парой. А в таком виде, как он есть - отстой.

Второй момент. У AVR слишком дофига регистров при том, что работа с ними неортогональна (младшая половина не работает, например, с константами). Гораздо лучше было бы если бы было регистров вдвое меньше (16), но все они были одинаковы и все они могли образовывать регистровые пары при адресации (т.е. быть указателями) и при адресной арифметике. Анализ кода показал, что в AVR заметный оверхед на пересылках адресов между регистрами, а нормальных поинтеров только два (из которых один отдан по указатель стека - Y). Реально в программе доступен только один Z, а X - недоделанный, не поддерживает адресацию со смещением. Вся эта кривизна очень распрекрасно видна при сравнении, например, с MSP430.

Третий момент - работа с памятью. Она медленная. Для Load/Store архитектуры работа с памятью должна быть максимально быстрой - ведь это ключевой момент, определящий быстродействие. Два такта на одно обращение - никуда не годится. Элементарный инкремент переменной в памяти занимает 5 тактов. из которых 4 - это накладные расходы на пересылку. Никуда не годится!

Это только основные моменты, но они, имхо, определяющие. Недоделанный он, AVR этот.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- bmf   scmRTOS - где семафоры?   Jun 9 2005, 09:09
- - ig_z   Цитата(bmf @ Jun 9 2005, 12:09)Хотел попробов...   Jun 9 2005, 10:23
|- - ig_z   Цитата(bmf @ Jun 9 2005, 15:24)ЦитатаТак ведь...   Jun 9 2005, 13:58
- - 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
- - bmf   Знаю что не влезет на мегу8, поэтому и ищу вариант...   Jun 14 2005, 17:50
|- - 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


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

 


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


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