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

 
 
> Выпущена scmRTOS 4.0., Ура, товарищи! :)
AHTOXA
сообщение Apr 5 2012, 12:57
Сообщение #1


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Собственно, субж.
Ссылки:

Кроме того, незадолго до этого была выпущена версия 3.11. Это завершающая, багофиксная версия 3.x. Ссылки:


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
dxp
сообщение Apr 13 2012, 03:35
Сообщение #2


Adept
******

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



QUOTE (IgorKossak @ Apr 13 2012, 00:56) *
Правда, было пару случаев, когда я высказывал авторам свои хотелки, но при этом серьёзно и обстоятельно их обосновывал.

Одну я помню - про принудительное завершение работы процесса (с последующим перезапуском), это в v4 реализовано. А какая вторая?

QUOTE (ReAl @ Apr 13 2012, 03:33) *
Но только чтобы это было без этой SomeISR(). Вот как только аппаратное прерывание возникло, так с точки за ef.wait() и продолжить. А как в другом месте поднимется флаг прерывания, кторого ждёт более приоритетный процесс, так чтобы так же без отдельного обработчика и флага сразу туда. А если менее приоритетный, то чтобы «оно» ждало.

Ну, а системе-то надо как-то "объяснить", по какому конкретно прерыванию в какой код переходить. Т.е. всё равно тут должно быть для того средство. Вот описание такого ISR и является по сути этим средством. Но выраженным штатными возможностями программных пакетов и предоставляющем дополнительную функциональность (можно внутри обработчика какой-то "неотложный"/служебный код выполнить). А сам такой обработчик, если он ничего, кроме сигнала флага не делает, можно вообще в одну строку записать без потери читабельности.

И технически можно было бы сделать так, чтобы при возникновении аппаратного прерывания передача управления сразу была в нужный код (забивать адрес, на который переходить), только учитывая, что всё равно имеет место вытеснение и приоритетность, без переключения контекста и выяснения приоритетности не обойтись. Поэтому эта хотелка вырождается именно в то, что имеем сейчас, практически в чистом виде, ничего лишнего у нас там нет: в ISR делается 1) активизация ожидающего процесса; 2) вызов планировщика, где обрабатываются приоритеты с последующим переключением контекстов (если необходимо).


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post
ReAl
сообщение Apr 13 2012, 05:18
Сообщение #3


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(dxp @ Apr 13 2012, 06:35) *
Ну, а системе-то надо как-то "объяснить", по какому конкретно прерыванию в какой код переходить. Т.е. всё равно тут должно быть для того средство.
Так я об этом и говорю. Даже если налепить «синтаксический сахар» OS::wait_TRUE_hardware_interrupt(TIMER1_IRQ); (толи допиливанием языка, как во всяких DynamicC, толи внешним препроцессором), всё равно в микроконтроллере — частично аппаратно, частично программно — будет произведена та же самая последовательность действий.
  • Возникновение аппаратного прерывания — тут с приоритетами и т.п. все в железе.
  • Переход (возможно, через некоторое время) на обработчик — это тоже в железе.
  • В обработчике программно (ну где-то же надо, а аппаратно не реализовано) решить
    • ждёт ли данный процесс этого события или он и так выполняется, но занят чем-то другим — нужно пометить, что потом ему не нужно ждать,
    • имеет ли право данный процесс выполняться сразу — переключиться на него сразу,
    • если права не имеет — пометить, что на него нужно перейти как только он право получит.
  • Если процесс ждал и звёзды благосклонны к данному процессу — переключить на него. Может быть частично поддержано/ускорено аппаратно.

Всё это во всех современных микроконтроллерах, в документацию на которые я заглядывал, будет одинаково молотиться программно. Если и можно что-то возложить на ПДП, то по прерыванию об окончании его работы всё равно пойдут те же процессы.
Ну никакой надежды на то, чтобы «C++ наконец-то заработал на современных чипах» biggrin.gif

Причём, как уже было сказано не раз, нужно просто один из методов «драйверного» класса вызывать непосредственно в прерывании и реакция будет максимально быстрая. Если отталкиваться от точки зрения, что вызов метода есть посылкой сообщения объекту, то вызов метода из ISR становится посылкой аппаратного сообщения тем образом, которым «современный чип» только и может это сделать.

Кстати, Cortex-M3 таки молодчинка. Если глянуть табличку времён переключения процесса (по 1-EventFlag, от поднятия лапки в прерывании до опускания в приоритетном процессе), состоящее из перепланирования и переключения контекста, взять оттуда и перемножить микросекунды на мегагерцы, то получим
BlackFin: 360 (ну тут, наверное, контекст большой)
AVR: ~320 (контекст великоват да и push/pop выполняются по два такта)
ARM7, MSP430: ~250
Cortex-M3: 195 (а с учётом последней поправки — 180 ?)

p.s[0] STM8/IAR — собственно переключение контекста немного короче, чем у AVR, перепланирование немного длиннее, но в целом немного быстрее.
p.s[1] Вот же ж зараза, вместо того, чтобы ещё абзац родить для странички STM8 Port в вики scmRTOS, сижу и, как и во времена RU.EMBEDDED, пишу не так для того, с кем формально «дискутирую», как для других — чтобы ему не поверили :-)
p.s[2] побежал я на работу...


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- AHTOXA   Выпущена scmRTOS 4.0.   Apr 5 2012, 12:57
- - haker_fox   Искренние поздравления! Использовал несколько ...   Apr 6 2012, 02:27
- - Fat Robot   Молодцы!   Apr 6 2012, 09:10
- - Aprox   Уважаемые авторы новой 4-ой версии! Позвольте...   Apr 9 2012, 18:32
|- - _Артём_   Цитата(Aprox @ Apr 9 2012, 21:32) Или все...   Apr 9 2012, 19:00
||- - Aprox   Цитата(_Артём_ @ Apr 9 2012, 23:00) А что...   Apr 10 2012, 09:02
||- - demiurg_spb   Цитата(Aprox @ Apr 10 2012, 13:02) Зато к...   Apr 10 2012, 10:12
|||- - dxp   QUOTE (demiurg_spb @ Apr 10 2012, 17:12) ...   Apr 10 2012, 10:17
||||- - demiurg_spb   ответил в предыдущем посте.   Apr 10 2012, 10:21
|||- - dxp   QUOTE (demiurg_spb @ Apr 10 2012, 17:12) ...   Apr 10 2012, 13:33
||- - Сергей Борщ   QUOTE (Aprox @ Apr 10 2012, 12:02) Мне пр...   Apr 10 2012, 10:13
|||- - Aprox   Цитата(Сергей Борщ @ Apr 10 2012, 14:13) ...   Apr 10 2012, 19:47
|||- - aaarrr   Цитата(Aprox @ Apr 10 2012, 23:47) Я посм...   Apr 10 2012, 20:12
|||- - demiurg_spb   Цитата(Aprox @ Apr 10 2012, 23:47) ...   Apr 11 2012, 04:54
|||- - Сергей Борщ   QUOTE (Aprox @ Apr 10 2012, 22:47) Видите...   Apr 11 2012, 05:48
|||- - Aprox   Цитата(Сергей Борщ @ Apr 11 2012, 09:48) ...   Apr 11 2012, 12:50
|||- - mdmitry   Цитата(Aprox @ Apr 11 2012, 16:50) А юзер...   Apr 11 2012, 13:43
|||- - AHTOXA   Цитата(Aprox @ Apr 11 2012, 18:50) Уточни...   Apr 11 2012, 14:44
|||- - Aprox   Цитата(AHTOXA @ Apr 11 2012, 18:44) Обраб...   Apr 11 2012, 19:11
|||- - AHTOXA   Цитата(Aprox @ Apr 12 2012, 00:24) OS по ...   Apr 11 2012, 19:12
||||- - Aprox   Цитата(AHTOXA @ Apr 11 2012, 23:12) У мен...   Apr 12 2012, 07:57
||||- - Lotor   Цитата(Aprox @ Apr 12 2012, 11:57) Чтобы ...   Apr 12 2012, 08:29
||||- - MrYuran   Цитата(Aprox @ Apr 12 2012, 11:57) Дело з...   Apr 12 2012, 08:43
||||- - Aprox   Цитата(MrYuran @ Apr 12 2012, 11:43) ScmR...   Apr 12 2012, 11:54
|||- - Сергей Борщ   QUOTE (Aprox @ Apr 11 2012, 22:11) Работа...   Apr 11 2012, 19:56
||- - _pv   Цитата(Aprox @ Apr 10 2012, 16:02) Зато к...   Apr 10 2012, 11:35
||- - AHTOXA   Цитата(Aprox @ Apr 10 2012, 15:02) Вот, я...   Apr 10 2012, 12:31
||- - _Артём_   Цитата(AHTOXA @ Apr 10 2012, 15:31) Вложе...   Apr 10 2012, 14:11
||- - AHTOXA   Цитата(_Артём_ @ Apr 10 2012, 20:11) Може...   Apr 10 2012, 16:56
||- - _Артём_   Цитата(AHTOXA @ Apr 10 2012, 19:56) в scm...   Apr 10 2012, 18:08
|||- - AHTOXA   Цитата(_Артём_ @ Apr 11 2012, 00:08) Ну д...   Apr 11 2012, 07:26
|||- - _Артём_   Цитата(AHTOXA @ Apr 11 2012, 10:26) Ну, у...   Apr 11 2012, 17:09
|||- - AHTOXA   Цитата(_Артём_ @ Apr 11 2012, 23:09) 70 г...   Apr 11 2012, 18:07
||- - Aprox   Цитата(AHTOXA @ Apr 10 2012, 20:56) Нет, ...   Apr 10 2012, 20:30
||- - aaarrr   Цитата(Aprox @ Apr 11 2012, 00:30) Тогда ...   Apr 10 2012, 20:54
|- - bookevg   Цитата(Aprox @ Apr 9 2012, 22:32) 1. Вы ...   Apr 9 2012, 19:05
|- - Сергей Борщ   QUOTE (Aprox @ Apr 9 2012, 21:32) 1. Вы ...   Apr 9 2012, 20:53
- - Anatoly74   Найдена опечатка в порте AVR, Common/OS_Kernel.h В...   Apr 11 2012, 07:34
|- - _pv   Цитата(Anatoly74 @ Apr 11 2012, 14:34) На...   Apr 11 2012, 09:05
||- - demiurg_spb   Цитата(_pv @ Apr 11 2012, 12:05) а будет ...   Apr 11 2012, 09:08
|- - Сергей Борщ   QUOTE (Anatoly74 @ Apr 11 2012, 10:34) До...   Apr 11 2012, 10:23
||- - ReAl   Цитата(Aprox @ Apr 11 2012, 15:50) Но ни ...   Apr 11 2012, 13:48
||- - Сергей Борщ   QUOTE (ReAl @ Apr 11 2012, 16:48) Сдвигае...   Apr 11 2012, 14:03
||- - mdmitry   Получается, что в текущем варианте можно использо...   Apr 11 2012, 14:35
||- - Сергей Борщ   QUOTE (mdmitry @ Apr 11 2012, 17:35) Полу...   Apr 11 2012, 14:45
||- - mdmitry   Зануда: А в документации страницы с 115 по 118, ...   Apr 11 2012, 14:56
|- - ReAl   Цитата(Anatoly74 @ Apr 11 2012, 10:34) На...   Apr 11 2012, 13:39
- - mdmitry   Aprox, Вас ни кто не заставляет использовать эту О...   Apr 11 2012, 20:06
- - dxp   QUOTE (mdmitry @ Apr 11 2012, 21:56) Зану...   Apr 12 2012, 03:44
- - viterra   Дело в том, что с типами данных действительно БЕДА...   Apr 12 2012, 10:05
- - IgorKossak   Хочется надеяться, что на том и порешили. Дальше, ...   Apr 12 2012, 12:24
|- - Aprox   Цитата(IgorKossak @ Apr 12 2012, 16:24) Д...   Apr 12 2012, 17:42
|- - IgorKossak   Цитата(Aprox @ Apr 12 2012, 20:42) А по д...   Apr 12 2012, 17:56
|- - MrYuran   Цитата(Aprox @ Apr 12 2012, 21:42) А по д...   Apr 12 2012, 17:57
|- - ReAl   Цитата(MrYuran @ Apr 12 2012, 20:57) А вы...   Apr 12 2012, 20:33
|- - Aprox   Цитата(ReAl @ Apr 13 2012, 00:33) Я думаю...   Apr 13 2012, 07:18
|- - Nixon   Цитата(Aprox @ Apr 13 2012, 10:18) Если ч...   Apr 13 2012, 07:25
||- - Aprox   Цитата(Nixon @ Apr 13 2012, 11:25) Отличн...   Apr 14 2012, 09:01
|- - haker_fox   QUOTE (Aprox @ Apr 13 2012, 15:18) В моем...   Apr 13 2012, 15:24
|- - ReAl   Цитата(Aprox @ Apr 13 2012, 10:18) Нет, н...   Apr 13 2012, 18:47
- - Nixon   Хотелось бы в рантайме иметь возможность определен...   Apr 12 2012, 12:33
|- - mdmitry   Цитата(Nixon @ Apr 12 2012, 16:33) Хотело...   Apr 12 2012, 12:52
|- - Сергей Борщ   QUOTE (Nixon @ Apr 12 2012, 15:33) Хотело...   Apr 12 2012, 12:59
- - Nixon   Все правильно, но из плагина я читаю переменную ил...   Apr 12 2012, 13:04
|- - _Артём_   Цитата(Nixon @ Apr 12 2012, 16:04) Все пр...   Apr 12 2012, 13:30
|- - IgorKossak   Цитата(dxp @ Apr 13 2012, 06:35) Одну я п...   Apr 13 2012, 06:42
- - Lotor   Позиция авторов, что задачи с одинаковым приоритет...   Apr 13 2012, 06:44
- - dxp   QUOTE (ReAl @ Apr 13 2012, 12:18) Кстати,...   Apr 13 2012, 13:08
|- - Lotor   Цитата(dxp @ Apr 13 2012, 17:08) Смысл в ...   Apr 13 2012, 13:46
|- - IgorKossak   Цитата(Lotor @ Apr 13 2012, 16:46) ... та...   Apr 13 2012, 14:29
- - Nixon   Хотел бы еще добавить свои пять копеек. IMHO полез...   Apr 13 2012, 13:27
- - dxp   QUOTE (Nixon @ Apr 13 2012, 20:27) По пов...   Apr 13 2012, 17:29
|- - Lotor   Цитата(dxp @ Apr 13 2012, 21:29) Да, тему...   Apr 16 2012, 04:20
|- - VslavX   Цитата(Lotor @ Apr 16 2012, 07:20) Я согл...   Apr 16 2012, 06:19
- - ReAl   Вы её просто не умеете готовить. Как, видимо, и лю...   Apr 14 2012, 10:38
|- - Aprox   Цитата(ReAl @ Apr 14 2012, 14:38) Если Вы...   Apr 15 2012, 08:20
|- - sasamy   Цитата(Aprox @ Apr 15 2012, 12:20) одна и...   Apr 15 2012, 11:08
|- - AHTOXA   Цитата(Aprox @ Apr 15 2012, 14:20) Зачем ...   Apr 15 2012, 13:57
|- - ReAl   Цитата(Aprox @ Apr 15 2012, 11:20) Видите...   Apr 15 2012, 15:46
- - dxp   QUOTE (Aprox @ Apr 15 2012, 15:20) Отдель...   Apr 16 2012, 04:52
|- - Lotor   Цитата(dxp @ Apr 16 2012, 08:52) Почему б...   Apr 16 2012, 05:48
|- - dxp   QUOTE (Lotor @ Apr 16 2012, 12:48) У меня...   Apr 16 2012, 06:35
|- - ReAl   Цитата(dxp @ Apr 16 2012, 09:35) Кто сказ...   Apr 16 2012, 07:29
||- - dxp   QUOTE (ReAl @ Apr 16 2012, 14:29) Та не™,...   Apr 16 2012, 07:46
||- - Lotor   Цитата(dxp @ Apr 16 2012, 11:46) Кстати, ...   Apr 16 2012, 08:44
|- - Lotor   Цитата(dxp @ Apr 16 2012, 10:35) Всё равн...   Apr 16 2012, 07:29
|- - VslavX   Цитата(dxp @ Apr 16 2012, 09:35) Это что ...   Apr 16 2012, 08:40
|- - AHTOXA   Цитата(VslavX @ Apr 16 2012, 14:40) Поэто...   Apr 16 2012, 08:50
|- - VslavX   Цитата(AHTOXA @ Apr 16 2012, 11:50) ваш в...   Apr 16 2012, 09:11
|- - AHTOXA   У меня нет ни IAR-а ни LCP17xx BTW, а не было ли ...   Apr 16 2012, 09:27
|- - VslavX   Цитата(AHTOXA @ Apr 16 2012, 12:27) У мен...   Apr 16 2012, 09:34
|- - AHTOXA   Цитата(VslavX @ Apr 16 2012, 15:34) Думаю...   Apr 16 2012, 09:48
|- - VslavX   Цитата(AHTOXA @ Apr 16 2012, 12:48) Предс...   Apr 16 2012, 10:09
|- - AHTOXA   Цитата(VslavX @ Apr 16 2012, 16:09) Это в...   Apr 16 2012, 11:12
- - dxp   QUOTE (VslavX @ Apr 16 2012, 15:40) Опера...   Apr 16 2012, 11:03
- - VslavX   Цитата(dxp @ Apr 16 2012, 14:03) Я про ва...   Apr 16 2012, 11:17
- - dxp   QUOTE (VslavX @ Apr 16 2012, 18:17) По зн...   Apr 16 2012, 11:47
- - VslavX   Цитата(dxp @ Apr 16 2012, 14:47) Это хоро...   Apr 16 2012, 11:59
3 страниц V   1 2 3 >


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

 


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


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