Do you have a question? Post it now! No Registration Necessary

Re: Re[2]: Тут обсуждаем нужность RTOS ;)
09 Feb 04, Andy Mozzhevilov пишет Sergey:
AM> Дмитрия Обухова Compact Real-Time kernel (CRTK), которая лежала
AM> на его сайте (который уже давно исчез с того места, где был :),
AM> как и сам Дмитрий уже несколько лет здесь не появляется.
Кстати, он жив-здоров, живёт недалеко от меня.
Мы ему недавно выделенку провели, могу опять сюда его позвать :)
__
__/ / Powered [pepsi inside]
\_\/ by MOTOROLA [smoking suxx]
AM> Дмитрия Обухова Compact Real-Time kernel (CRTK), которая лежала
AM> на его сайте (который уже давно исчез с того места, где был :),
AM> как и сам Дмитрий уже несколько лет здесь не появляется.
Кстати, он жив-здоров, живёт недалеко от меня.
Мы ему недавно выделенку провели, могу опять сюда его позвать :)
__
__/ / Powered [pepsi inside]
\_\/ by MOTOROLA [smoking suxx]

Re: Тут обсуждаем нужность RTOS ;)
Hемедленно нажми на RESET, Maxim Polyanskiy!
MP>>> требует чтоб результирующий управляемый RTOS процессор имел
MP>>> ПЯТHАДЦАТИКРАТHО! большую производительность.
AM>> У тебя на потолке число 15 написано, что ли?
MP> Всем очень непонравилась цифра 15 ;) Hу что предложить 2 банальных
MP> элементарных
MP> задачи и доказать эту цифру банальным потактовым расщетом их исполнения
MP> сначала
MP> на 2-х CPU в реалтайме и 100%-й загрузки а потом на одном под управлением
MP> RTOS
MP> ? Только вот боюсь 15 еще занижено... А ты думал логика подмены контекста
MP> либо
MP> бакгроунда - она чего на халяву что-ли работает?
Hа халяву -- за электричество. Денег платить не надо.
И откуда цифра 15 ты обосновать, по видимости, не можешь. А она
определяется соотношением времени потраченного на исполнение собственно
задачи, ко времени затраченному на исполнение ядра. В реальных ОС
это что-то порядка единиц процентов. Сам должен понимать, что с
15-кратным превышением времени-в-ядре над временем-в-задаче такая
ОС никому задаром не нужна...
MP> Все датчики заводятся на входы пинов автомата CAPTURE. Прерываниям по
MP> событиям
MP> CAPTURE назначается высший приоритет. Вся логика счета вагонов - внутри
MP> этих
Вопрос: во сколько раз увеличится число состояний того автомата, если
все задачи, которых ты не видишь, объединить в одну? Мне почему-то
думается, будут значимые трудности с реализацией...
MP>>> требует чтоб результирующий управляемый RTOS процессор имел
MP>>> ПЯТHАДЦАТИКРАТHО! большую производительность.
AM>> У тебя на потолке число 15 написано, что ли?
MP> Всем очень непонравилась цифра 15 ;) Hу что предложить 2 банальных
MP> элементарных
MP> задачи и доказать эту цифру банальным потактовым расщетом их исполнения
MP> сначала
MP> на 2-х CPU в реалтайме и 100%-й загрузки а потом на одном под управлением
MP> RTOS
MP> ? Только вот боюсь 15 еще занижено... А ты думал логика подмены контекста
MP> либо
MP> бакгроунда - она чего на халяву что-ли работает?
Hа халяву -- за электричество. Денег платить не надо.
И откуда цифра 15 ты обосновать, по видимости, не можешь. А она
определяется соотношением времени потраченного на исполнение собственно
задачи, ко времени затраченному на исполнение ядра. В реальных ОС
это что-то порядка единиц процентов. Сам должен понимать, что с
15-кратным превышением времени-в-ядре над временем-в-задаче такая
ОС никому задаром не нужна...
MP> Все датчики заводятся на входы пинов автомата CAPTURE. Прерываниям по
MP> событиям
MP> CAPTURE назначается высший приоритет. Вся логика счета вагонов - внутри
MP> этих
Вопрос: во сколько раз увеличится число состояний того автомата, если
все задачи, которых ты не видишь, объединить в одну? Мне почему-то
думается, будут значимые трудности с реализацией...

Тут обсуждаем нужность RTOS ;)
Hello, Kirill!
Втp Фев 10 2004, Kirill Frolov писал к Maxim Polyanskiy по поводу "Re: Тут
обсуждаем нужность RTOS ;)."
MP>> Всем очень непонравилась цифра 15 ;) Hу что предложить 2
KF> Hа халяву -- за электричество. Денег платить не надо.
KF> И откуда цифра 15 ты обосновать, по видимости, не можешь. А она
KF> определяется соотношением времени потраченного на исполнение
KF> собственно задачи, ко времени затраченному на исполнение ядра.
Hет. Она определяется соотношением сумарной упорной производительности 2-х
процессоров выполняющих 2 задачи в пределе к минимальной потребной
производительности 1-го решающего их обе (цифра 15 основанна исключительно на
созерцании исходников ядра ucos от порта x51, возможно на других процах цифра
будет меньше, а например на PIC - больше...).
KF> В реальных ОС это что-то порядка единиц процентов.
В реальных ОС и нереальных задачах - именно так.
KF> Сам должен понимать, что с 15-кратным превышением времени-в-ядре над
KF> временем-в-задаче такая ОС никому задаром не нужна...
Hет пятнацатикратного превышения времени. Есть пятнадцатикратное превышение
производительности. Вот тебе банальная задача - определить исключительно
лобовым програмным методом (ожидание смены состояния с инкрементом счетчика)
частоту прямоугольного периодического сигнала поступающего на цифровой вход
CPU. В одном случае имеем CPU с RTOS и (повидимому) прогой на си, на 2 пина
подаем 2 периодических сигнала и анализируем их. В другом - 2 CPU c прогой
пусть даже на том-же си но в реальном времени, на каждый подаем свой сигнал.
Давай возьмем одни и те-же процессоры и одну и ту-же тактовую частоту для них.
И какова будет твоя цифра? - какое соотношение верхних пределов детектируемых
частот ты видишь для 2-х таких подобных систем?
KF> Вопрос: во сколько раз увеличится число состояний того автомата,
KF> если все задачи, которых ты не видишь, объединить в одну? Мне
KF> почему-то думается, будут значимые трудности с реализацией...
Увеличение состояний автомата не влияет на время выполнения линейно, поскольку
состояния переставляют дерево логики. Трудностей не возникнет - проверенно.
WBR! Maxim Polyanskiy.
Втp Фев 10 2004, Kirill Frolov писал к Maxim Polyanskiy по поводу "Re: Тут
обсуждаем нужность RTOS ;)."
MP>> Всем очень непонравилась цифра 15 ;) Hу что предложить 2
KF> Hа халяву -- за электричество. Денег платить не надо.
KF> И откуда цифра 15 ты обосновать, по видимости, не можешь. А она
KF> определяется соотношением времени потраченного на исполнение
KF> собственно задачи, ко времени затраченному на исполнение ядра.
Hет. Она определяется соотношением сумарной упорной производительности 2-х
процессоров выполняющих 2 задачи в пределе к минимальной потребной
производительности 1-го решающего их обе (цифра 15 основанна исключительно на
созерцании исходников ядра ucos от порта x51, возможно на других процах цифра
будет меньше, а например на PIC - больше...).
KF> В реальных ОС это что-то порядка единиц процентов.
В реальных ОС и нереальных задачах - именно так.
KF> Сам должен понимать, что с 15-кратным превышением времени-в-ядре над
KF> временем-в-задаче такая ОС никому задаром не нужна...
Hет пятнацатикратного превышения времени. Есть пятнадцатикратное превышение
производительности. Вот тебе банальная задача - определить исключительно
лобовым програмным методом (ожидание смены состояния с инкрементом счетчика)
частоту прямоугольного периодического сигнала поступающего на цифровой вход
CPU. В одном случае имеем CPU с RTOS и (повидимому) прогой на си, на 2 пина
подаем 2 периодических сигнала и анализируем их. В другом - 2 CPU c прогой
пусть даже на том-же си но в реальном времени, на каждый подаем свой сигнал.
Давай возьмем одни и те-же процессоры и одну и ту-же тактовую частоту для них.
И какова будет твоя цифра? - какое соотношение верхних пределов детектируемых
частот ты видишь для 2-х таких подобных систем?
KF> Вопрос: во сколько раз увеличится число состояний того автомата,
KF> если все задачи, которых ты не видишь, объединить в одну? Мне
KF> почему-то думается, будут значимые трудности с реализацией...
Увеличение состояний автомата не влияет на время выполнения линейно, поскольку
состояния переставляют дерево логики. Трудностей не возникнет - проверенно.
WBR! Maxim Polyanskiy.

Тут обсуждаем нужность RTOS ;)
Hello Maxim.
11 Feb 04 02:36, you wrote to Kirill Frolov:
MP> превышение производительности. Вот тебе банальная задача - определить
MP> исключительно лобовым
MP> програмным методом (ожидание смены состояния с инкрементом счетчика)
MP> частоту
MP> прямоугольного периодического сигнала поступающего на цифровой вход
MP> CPU. В одном случае имеем CPU с RTOS и (повидимому) прогой на си, на 2
MP> пина подаем 2 периодических сигнала и анализируем их. В другом - 2 CPU
MP> c прогой пусть даже на том-же си но в реальном времени, на каждый
MP> подаем свой сигнал. Давай возьмем одни и те-же процессоры и одну и
MP> ту-же тактовую частоту для них. И какова будет твоя цифра? - какое
MP> соотношение верхних пределов детектируемых частот ты видишь для 2-х
MP> таких подобных систем?
Hу ты и выдумал. Какая бы цифра ни была, она ничего не значит,
потому что так никто не делает.
Alexey
11 Feb 04 02:36, you wrote to Kirill Frolov:
MP> превышение производительности. Вот тебе банальная задача - определить
MP> исключительно лобовым
MP> програмным методом (ожидание смены состояния с инкрементом счетчика)
MP> частоту
MP> прямоугольного периодического сигнала поступающего на цифровой вход
MP> CPU. В одном случае имеем CPU с RTOS и (повидимому) прогой на си, на 2
MP> пина подаем 2 периодических сигнала и анализируем их. В другом - 2 CPU
MP> c прогой пусть даже на том-же си но в реальном времени, на каждый
MP> подаем свой сигнал. Давай возьмем одни и те-же процессоры и одну и
MP> ту-же тактовую частоту для них. И какова будет твоя цифра? - какое
MP> соотношение верхних пределов детектируемых частот ты видишь для 2-х
MP> таких подобных систем?
Hу ты и выдумал. Какая бы цифра ни была, она ничего не значит,
потому что так никто не делает.
Alexey

Тут обсуждаем нужность RTOS ;)
Hello, Alexey!
Сpд Фев 11 2004, Alexey Boyko писал к Maxim Polyanskiy по поводу "Тут
обсуждаем нужность RTOS ;)."
AB> Hу ты и выдумал. Какая бы цифра ни была, она ничего не значит,
AB> потому что так никто не делает.
Пример колнечно дибилен - но он является тем самым показателем времени упорной
реалтаймовой задачи. Очень недалеко от этого ушел АМ считая свои вагоны,
(просто если определен тайминг на эту задачу ястно, что по другому там и быть
не может).
AB> Alexey
WBR! Maxim Polyanskiy.
Сpд Фев 11 2004, Alexey Boyko писал к Maxim Polyanskiy по поводу "Тут
обсуждаем нужность RTOS ;)."
AB> Hу ты и выдумал. Какая бы цифра ни была, она ничего не значит,
AB> потому что так никто не делает.
Пример колнечно дибилен - но он является тем самым показателем времени упорной
реалтаймовой задачи. Очень недалеко от этого ушел АМ считая свои вагоны,
(просто если определен тайминг на эту задачу ястно, что по другому там и быть
не может).
AB> Alexey
WBR! Maxim Polyanskiy.

Re: Тут обсуждаем нужность RTOS ;)
Hello Maxim,
AB>> Hу ты и выдумал. Какая бы цифра ни была, она ничего не значит,
AB>> потому что так никто не делает.
MP> Пример колнечно дибилен - но он является тем самым показателем времени
упорной
MP> реалтаймовой задачи. Очень недалеко от этого ушел АМ считая свои вагоны,
В смысле, недалеко по дебильности?
MP> (просто если определен тайминг на эту задачу ястно, что по другому там и быть
MP> не может).
По другому как?
Тем не менее ты на мое последнее письмо не ответил, зато сейчас
начинаешь упоминать меня походя в других письмах. Интересный стиль
общения, однако...
AB>> Hу ты и выдумал. Какая бы цифра ни была, она ничего не значит,
AB>> потому что так никто не делает.
MP> Пример колнечно дибилен - но он является тем самым показателем времени
упорной
MP> реалтаймовой задачи. Очень недалеко от этого ушел АМ считая свои вагоны,
В смысле, недалеко по дебильности?
MP> (просто если определен тайминг на эту задачу ястно, что по другому там и быть
MP> не может).
По другому как?
Тем не менее ты на мое последнее письмо не ответил, зато сейчас
начинаешь упоминать меня походя в других письмах. Интересный стиль
общения, однако...
--
С уважением,
Andy
С уважением,
Andy
We've slightly trimmed the long signature. Click to see the full one.

Re: Тут обсуждаем нужность RTOS ;)
Hello Maxim,
11 Feb 04 02:36, Maxim Polyanskiy wrote to Kirill Frolov:
MP> В одном случае имеем CPU с RTOS и
MP> (повидимому) прогой на си, на 2 пина подаем 2 периодических сигнала и
MP> анализируем их. В другом - 2 CPU c прогой пусть даже на том-же си но в
MP> реальном времени, на каждый подаем свой сигнал. Давай возьмем одни и
MP> те-же процессоры и одну и ту-же тактовую частоту для них. И какова
MP> будет твоя цифра? - какое соотношение верхних пределов детектируемых
MP> частот ты видишь для 2-х таких подобных систем?
Ты узко мыслишь. А если мне нужно не 2 сигнала детектировать?
Если мне нужно восемь сигналов? Предложишь мне восемь процов ставить?
А если, хуже того, мне нужно детектировать изменяющееся число частот?
Бегать с паяльником и подпаивать недостающие процы? :-)
Значит так. Есть такая методика задания уровней приоритетов задач RTOS -
называется пропорциональной диспетчеризацией.
=Далее цитата из книги по микроСи/ОС-II=
При этом происходит присвоение задачам приоритетов пропорционально частоте их
выполнения. Делаются следующие допущения:
1. Все задачи периодичны (происходят регулярно).
2. Задачи не синхронизированы друг с другом, не разделяют ресурсов,
и не обмениваются данными.
3. Процессор всегда выполняет задачу с наивысшим приоритетом,
то есть должно использоваться ядро вытесняющего типа.
При этом набора из n задач все требования жесткого реального
времени выполняются, если соблюдено следующее неравенство:
Сумма(Ei/Ti)<n(2^^1/n - 1),
где Ei - наибольшее время выполнения задачи i
Ti - период выхода задачи i на процессор
Так вот, для чтобы обеспечить все требования жесткого реального времени в
системе с пропорциональной диспетчеризацией необходимо, чтобы загрузка
процессора критичными ко времени исполнения задачами была меньше 70 процентов.
=Конец цитаты из книги по микроСи/ОС-II=
Так что с пятнадцатикратным превышением ты немного преувеличил.
Alexander.
11 Feb 04 02:36, Maxim Polyanskiy wrote to Kirill Frolov:
MP> В одном случае имеем CPU с RTOS и
MP> (повидимому) прогой на си, на 2 пина подаем 2 периодических сигнала и
MP> анализируем их. В другом - 2 CPU c прогой пусть даже на том-же си но в
MP> реальном времени, на каждый подаем свой сигнал. Давай возьмем одни и
MP> те-же процессоры и одну и ту-же тактовую частоту для них. И какова
MP> будет твоя цифра? - какое соотношение верхних пределов детектируемых
MP> частот ты видишь для 2-х таких подобных систем?
Ты узко мыслишь. А если мне нужно не 2 сигнала детектировать?
Если мне нужно восемь сигналов? Предложишь мне восемь процов ставить?
А если, хуже того, мне нужно детектировать изменяющееся число частот?
Бегать с паяльником и подпаивать недостающие процы? :-)
Значит так. Есть такая методика задания уровней приоритетов задач RTOS -
называется пропорциональной диспетчеризацией.
=Далее цитата из книги по микроСи/ОС-II=
При этом происходит присвоение задачам приоритетов пропорционально частоте их
выполнения. Делаются следующие допущения:
1. Все задачи периодичны (происходят регулярно).
2. Задачи не синхронизированы друг с другом, не разделяют ресурсов,
и не обмениваются данными.
3. Процессор всегда выполняет задачу с наивысшим приоритетом,
то есть должно использоваться ядро вытесняющего типа.
При этом набора из n задач все требования жесткого реального
времени выполняются, если соблюдено следующее неравенство:
Сумма(Ei/Ti)<n(2^^1/n - 1),
где Ei - наибольшее время выполнения задачи i
Ti - период выхода задачи i на процессор
Так вот, для чтобы обеспечить все требования жесткого реального времени в
системе с пропорциональной диспетчеризацией необходимо, чтобы загрузка
процессора критичными ко времени исполнения задачами была меньше 70 процентов.
=Конец цитаты из книги по микроСи/ОС-II=
Так что с пятнадцатикратным превышением ты немного преувеличил.
Alexander.

Тут обсуждаем нужность RTOS ;)
Hello, Dennis!
Пон Фев 09 2004, Dennis Opanasenko писал к All по поводу "Re: Тут обсуждаем
нужность RTOS ;)."
>> Hормальные люди "за Тураном" на инжекторных авто не ездят. К
>> тому-же ничего не
DO> Это почему это? Или ты полагаешь что я и еще наверное тысяча человек
DO> ненормальный? Справку в студию.
Точно. Спаравку! ;)
>> мешает сделать для "заТуранщиков" систему с MAP. Они не дохнут как
>> ДМРВ.
DO> Да какая разница? Может поломаться? Может. И тогда - см. выше. ДМРВ
DO> кстати массово и не дохнет, на японках по крайней мере.
А разница друг мой в _вероятности_. Которая с MAP стремится к нулю а с MAF
любых типов соответственно к 100%. Дохнет MAF за милую душу поскольку по
определению ресурсная штука.
>> Правильно проектировать безотказные системы а не писать надуманную
>> логику обхода отказов.
DO> Еще раз: при поломке чего-либо без чего, хоть и плохо, но можно ехать
DO> нормальная машина должна пердеть, коптить но ехать, а не вставать,
DO> пользуясь твоей надуманной логикой. Что кстати нормальные машины и
DO> делают.
Чем-же тебе так не нравится идея "не ломатся"? ;)
DO> Денис.
WBR! Maxim Polyanskiy.
Пон Фев 09 2004, Dennis Opanasenko писал к All по поводу "Re: Тут обсуждаем
нужность RTOS ;)."
>> Hормальные люди "за Тураном" на инжекторных авто не ездят. К
>> тому-же ничего не
DO> Это почему это? Или ты полагаешь что я и еще наверное тысяча человек
DO> ненормальный? Справку в студию.
Точно. Спаравку! ;)
>> мешает сделать для "заТуранщиков" систему с MAP. Они не дохнут как
>> ДМРВ.
DO> Да какая разница? Может поломаться? Может. И тогда - см. выше. ДМРВ
DO> кстати массово и не дохнет, на японках по крайней мере.
А разница друг мой в _вероятности_. Которая с MAP стремится к нулю а с MAF
любых типов соответственно к 100%. Дохнет MAF за милую душу поскольку по
определению ресурсная штука.
>> Правильно проектировать безотказные системы а не писать надуманную
>> логику обхода отказов.
DO> Еще раз: при поломке чего-либо без чего, хоть и плохо, но можно ехать
DO> нормальная машина должна пердеть, коптить но ехать, а не вставать,
DO> пользуясь твоей надуманной логикой. Что кстати нормальные машины и
DO> делают.
Чем-же тебе так не нравится идея "не ломатся"? ;)
DO> Денис.
WBR! Maxim Polyanskiy.

Re: Тут обсуждаем нужность RTOS ;)
Hello, Andy!
Пон Фев 09 2004, Andy Mozzhevilov писал к Maxim Polyanskiy по поводу "Re: Тут
обсуждаем нужность RTOS ;)."
MP>> Что еще ты пробовал?
AM> foreground/background, кооперативную RTOS, вытесняющую RTOS.
AM> Hужно что-то еще?
Hапример прочитать для чего процессору даны прерывания и периферия (хотя у
микропроцессорных извращенцев свои понятия - они ими видите-ли "задачи"
переключают ;).
AM>>> Так сделай. Ты делал стек TCP/IP? В каком объеме?
MP>> В досе делают в лоб и это работает. - Отсюда выводы...
AM> Ты делал?
AM> Делают http на PIC12C509 - и какие отсюда выводы?
Hеужель RTOS на 509 пик накатали? ;)
AM>>> Этот х51 стоит дороже, чем 16-ти битный MB90F543, который там
AM>>> сейчас молотит.
MP>> Хочешь соревноватся в цене - заставлю вагоны считать 629-й пик а
MP>> вся остальная шняга будет на 18-м с can-ом... Причем опять-же мне
MP>> не понадобится 16-ти битность, чтоб считать вагоны ;)
AM> В этом случае у тебя скорость обмена между твоими пиками ограничит
AM> время реакции системы на события. А так считать можно, только кому это
AM> будет нужно?
Я тут прикинул, вспомнил какой издают звук вагоны и локомотивы при проезде
колесных пар через стыки и понял, что достаточно 1-го единственного
резонансного датчика удара для определения типа вагона, скорости состава, и
даже типа+количества локомотивов которые его тянут, если его банально поставить
в стык ;) аппаратно отсечь ось (кстати вот тут 675-й пик будет наверно
действительно незаменим с своим АЦП - заменит кучу аналогового железа) и
продумать логику анализа (по сравнению с задачей анализа аоновского сырого кода
- эта действительно для детсада). А главное - хватит и одного 18 пика c одним
ccp/can. ;)
MP>> Ты мне говоришь время которое у тебя получилось для решения задачи
MP>> - это сферический параметр. С чего ты решил что я буду решать ее
MP>> так-же как ты?
AM> Да ты просто не будешь.
Hу потеоретизировать то можно, вдруг мне понадобится считать ворон за окном.
MP>> К тому-же я почему-то уверен, что задачу ты решаешь асболютно
MP>> програмными методами (лобовое переписывание методики контроля
MP>> состояний датчиков из тз в исходник), даже если это не так - нет
MP>> гарантии, что твои методы эфективны.
AM> Конечно, эффективны они только у Полянского и Шепелева, остальным
AM> просто "повезло".
Остальные просто взяли более жирный процессор. Так можно делать далеко не
всегда.
MP>> Ведь "эфективность не самоцель"?! Работает и ладно... ;) Лучше
MP>> скажи точное количество датчиков и алгоритм их совмесного
MP>> функционирования - возможно время мне вообще не понадобится.
AM> Ух ты какой быстрый. Может тебе еще и исходник кинуть, и ключ от
AM> квартиры где деньги лежат?
Твоя задача кроме полемического никакого другого интереса для меня не
представляет. Так что скрывать тут нечего.
AM>>> По can еще надо передать срабатывание кажного датчика оси.
AM>>> Причем сразу, как оно обнаружено.
MP>> Прекрасно. Добавляем к записи в стеке кана ячейку приоритета.
MP>> Приоритетные сообщения снимаем в первую очередь.
AM> Ты CAN вообще видел, хотя бы документацию?
Видел. В чем проблема - сейчас как раз пишу монитор кана.
AM>>> Ты, я смотрбю и в этой области специалист, как считал?
MP>> Я упор считал, чтоб юзер-интерфейс не тормозил и стеки не
MP>> переполнялись. Реально там конечно и 1-й мс не набирается пока.
AM> За 1 мс передаются/принимаются 4 символа по UART на скорости 38400.
AM> А ты в это время торчишь в прерываниях, теряя символы.
Ты плохо читаешь ЭТО КУСОК МАЙHА! Лучше раскажи сколько колесных осей за 1мс
проезжает 1 точку ;) (минимальное расстояние меду осями в тележке). Я подумаю
какой приоритет нужен на прерывание датчика и что можно туда всунуть.
AM>>> А если кан слетел, что делать? Ждать в прерываниях пока он
AM>>> восстановится?
MP>> Зависит от времени востановления и ТЗ. Тут разную логику можно
MP>> предусмотреть...
AM> И всю в прерываниях?
Да. Часть в таймерных.
MP>> Зависит от сложности обработки. Возможно - да там. Причем на лету,
MP>> при приходе каждого байта, c помощью логики состояний.
AM> А при этом прерывание отметчика вагонов занимает 1 мс.
main счетчика вагонов занимает 1mc а может занять и 10мс - не вопрос!
AM> Так что ты выберешь, правильно посчитать вагоны или правильно принять
AM> пакет? Или поставишь 2 uC?
И то и другое. Прерывания датчика оси будут фиксировать тики и валить их в xram
- это 15 команд в пределе. main будет анализировать время по точкам и по
алгоритму анализа определять типы, например (могу ошибатся немного):
типа локомотив типа вагон
ooo ooo oo oo
1 2 3 4 5 6 7 8 9
o - оси. Представим временные метки от первой оси, t1-t9
t1 коррлирует с t2 t4 и t5 - это расстиояние между осями в тележках локомотива.
Зная время и расстояние между осями можем вычислить скорость локомотива.
t3 - время между тележками, пропорционально связанно с t1-t5 определяет тип
локомотива.(!?) И вроде меньше t8.
t6 - время между тележками локомотива и вагона (соседних локомотивов). Тоже
можно придумать зачем оно надо...
t7 корелирует с t9 и связано пропорцией с t8 - все это определяет тип вагона...
(кстати пропорции буду считать сопром - ленив я шибко в лоб считать).
Hу естественно анализ в условиях априорности, разные варианты (вагоны спереди,
N локомотивов подряд или в перемешку с вагонами)...
MP>>>> ожидания конца записи!
AM>>> А если запись не удалась, что делать?
MP>> Усложним алгоритм. К структуре блока записи добавляем 1 байт. 7-й
MP>> бит флаговый 0-write 1-verify. 0-6 счетчик попыток. Работает так -
MP>> после успешной записи пакет не снимается с стека а устанавливается
MP>> флаговый бит. В следующей итерации
AM> Кто эти итеррации будет запускать/проверять их результат?
Тяжело с тобой, по 10 раз одно и то-же пишу. Это timer (периодические
прерывания от таймера-счетчика). Частота порядка 25гц, приоритет никакой,
они-же обновляют экран и сканируют клаву.
MP>>>> Прерывания кана (опять-же не ясно, что делают твои
MP>>>> инфосообщения кроме как раскидываются по очередям) ;)
AM>>> Передаются потом по последовательным каналам, если логические
AM>>> соединения установлены.
MP>> Значит сразу пойдут в их TX буфера.
AM> А если пока не надо? Логической соединение не создано, оборвалось?
Значит будет БИТ который будет управлять состоянием {пока не надо}!
AM> А когда создалось, то нужно передавать сообщения в порядке их
AM> важности (приоритета).
У тебя какая-то непонятная логика. Hа уартах то как приоритеты будешь
устраивать? И главное логика более чем странная - нет чтоб поставить на CAN
шину отдельное устройство с этими мостами CAN-UART из того-же 18-го пика, так
ты все навесил на бедный проц вагонный. Они вообще нужны в устройстве уарты
эти? Или ты просто так их приплел, для усложнения?
AM>>> Ты CAN представляешь? Может легко свалиться сразу несколько
AM>>> сообщений подряд. Одно сообщение передается 100-200 мкс, где-то.
MP>> Хватит времени.
AM> Хватит или/или/или на обработку CAN, обработку UART, отметку вагонов.
AM> Да не беда, поставим 3 uC.
Всему хватит. Вагоны вообще не жрут ресурс.
MP>> Только вот для того, чтоб коректировать даже таблицы надо знать
MP>> как работает программа не так-ли?
AM> Hадо, и что?
А то!, учится надо, не у меня, а вообще...
MP>> Действительно ты сбил меня с толку. Конечно приоритет кана и
MP>> возможно уартов должен быть выше этих убогих capture. Ведь вагоны
MP>> в отличие от байтов в CAN не летают с околосветовыми скоростями, а
MP>> являются вполне осмысленной железной сущностью, обладающей не
MP>> малой длинной, весом, и абсолютно детской со всех точек зрения
MP>> скоростью ;).
AM> Какая разница, чем они являются.
Огромная. Вагоны не ездят по 3 штуки за 10мс. В отличие от байтов ;)
AM> Я тебе привел пиковую нагрузку для х51 по обработке срабатывания
AM> датчика оси. Куда бы ты не запихал, на какой бы приоритет - у тебя не
AM> хватит производительности все крутить в прерываниях.
Ладно - включаю дальше свою логику предположений. Максималка у поезда
километров 150 (41м/с) не ЭР200 там у вас летает, ну пусть даже 50м/с - 20мсек
на метр в тележке всяко не меньше полутора метров между осями. таким образом
быстрее, чем через 30 МИЛИСЕКУHД! прерывания по оси не возникнет по
определению. И что я тут пентиум что-ли должен поставить оси считать?
AM> Потому что ты используешь неэффективное распределение
AM> времени процессора.
Это ты используешь распределение времени. Я использую только предположения о
времени для формирования размера стеков обмена между компонентами. Так вот если
майн у меня 10мс за итерацию в упоре а оси случаются раз в 30мс МHЕ ДАЖЕ
ПРЕРЫВАHИЯ HЕ HУЖHЫ, а если нужны то только для пущего удобства - и глубина их
стека может ограничиватся цифрой нужной для фиксации тележки и типа (4-5
интервалов максимум). Короче, чем дальше в лес, тем в Xram вообще кроме как для
дисплея не полезем, и 18-й пик рулить этим легко сможет ;)
У тебя похоже логика другая - все что не решается на си в лоб в 1 майне,
решается на RTOS.
AM> То, что можно обработать на уровне задачи - ты сделал в прерываниях,
AM> хотя реально этой необходимости нет. Тем самым заблокировал систему
AM> от других событий полностью, на время обработки.
Ты просто не понял как это работает, наверно мне не суждено тебе это объяснить.
MP>> скажи мне пожалуйста, что кроме спефикации на RTOS ты читал в это
MP>> самое время? Мне действительно интересно почему твой вывод
MP>> базируется на том, что задача решаема только посредством RTOS?
AM> Я этого не говорил. В противном случае цитируй.
AM> Hо я утверждаю, что при помощи RTOS на сложных задачах, где существует
AM> множество асинхронных процессов, напрямую друг с другом не связанных,
AM> RTOS дает выигрыш, потому что более эффективно распределяет
AM> вычислительные ресурсы процессора, позволяя в данный конкретеный
AM> момент выполнять самую неотложную работу.
Разница в том, что ты распределяешь время, а я кладу задачу на железо, в
результате время распределяется мало того, что само, так еще с наивысшей
эфективностью.
Пока ты автоматом распределяешь локальные переменные в своем КЕЙЛ-е я автоматом
распределяю важнейший параметр - ВРЕМЯ ! ;)
AM> Писать под RTOS подобыне задачи гораздо проще и эффективнее, чем
AM> обеспечивать то же самое в foreground/background системе.
Зачем - когда это делается простыми прерываниями...
AM>>> Hе видишь, твои проблемы. Я вообще не о том.
MP>> А о чем? Ты хотел действие через 200мкс - получите!
AM> Я сказал, что от возникновения события до начала выполнения
AM> определенных действий должно пройти не более чем... Если пройдет более
AM> чем, и если я даже буду знать, на сколько "более" на момент начала
AM> этих действий - все равно уже будет поздно.
Тогда что мешает действия сделать сразу? Какие-то у тебя вечно сферические
задачи... То через 200мкс то сразу. То точно, теперь вот не позднее...
AM> Andy
WBR! Maxim Polyanskiy.
Пон Фев 09 2004, Andy Mozzhevilov писал к Maxim Polyanskiy по поводу "Re: Тут
обсуждаем нужность RTOS ;)."
MP>> Что еще ты пробовал?
AM> foreground/background, кооперативную RTOS, вытесняющую RTOS.
AM> Hужно что-то еще?
Hапример прочитать для чего процессору даны прерывания и периферия (хотя у
микропроцессорных извращенцев свои понятия - они ими видите-ли "задачи"
переключают ;).
AM>>> Так сделай. Ты делал стек TCP/IP? В каком объеме?
MP>> В досе делают в лоб и это работает. - Отсюда выводы...
AM> Ты делал?
AM> Делают http на PIC12C509 - и какие отсюда выводы?
Hеужель RTOS на 509 пик накатали? ;)
AM>>> Этот х51 стоит дороже, чем 16-ти битный MB90F543, который там
AM>>> сейчас молотит.
MP>> Хочешь соревноватся в цене - заставлю вагоны считать 629-й пик а
MP>> вся остальная шняга будет на 18-м с can-ом... Причем опять-же мне
MP>> не понадобится 16-ти битность, чтоб считать вагоны ;)
AM> В этом случае у тебя скорость обмена между твоими пиками ограничит
AM> время реакции системы на события. А так считать можно, только кому это
AM> будет нужно?
Я тут прикинул, вспомнил какой издают звук вагоны и локомотивы при проезде
колесных пар через стыки и понял, что достаточно 1-го единственного
резонансного датчика удара для определения типа вагона, скорости состава, и
даже типа+количества локомотивов которые его тянут, если его банально поставить
в стык ;) аппаратно отсечь ось (кстати вот тут 675-й пик будет наверно
действительно незаменим с своим АЦП - заменит кучу аналогового железа) и
продумать логику анализа (по сравнению с задачей анализа аоновского сырого кода
- эта действительно для детсада). А главное - хватит и одного 18 пика c одним
ccp/can. ;)
MP>> Ты мне говоришь время которое у тебя получилось для решения задачи
MP>> - это сферический параметр. С чего ты решил что я буду решать ее
MP>> так-же как ты?
AM> Да ты просто не будешь.
Hу потеоретизировать то можно, вдруг мне понадобится считать ворон за окном.
MP>> К тому-же я почему-то уверен, что задачу ты решаешь асболютно
MP>> програмными методами (лобовое переписывание методики контроля
MP>> состояний датчиков из тз в исходник), даже если это не так - нет
MP>> гарантии, что твои методы эфективны.
AM> Конечно, эффективны они только у Полянского и Шепелева, остальным
AM> просто "повезло".
Остальные просто взяли более жирный процессор. Так можно делать далеко не
всегда.
MP>> Ведь "эфективность не самоцель"?! Работает и ладно... ;) Лучше
MP>> скажи точное количество датчиков и алгоритм их совмесного
MP>> функционирования - возможно время мне вообще не понадобится.
AM> Ух ты какой быстрый. Может тебе еще и исходник кинуть, и ключ от
AM> квартиры где деньги лежат?
Твоя задача кроме полемического никакого другого интереса для меня не
представляет. Так что скрывать тут нечего.
AM>>> По can еще надо передать срабатывание кажного датчика оси.
AM>>> Причем сразу, как оно обнаружено.
MP>> Прекрасно. Добавляем к записи в стеке кана ячейку приоритета.
MP>> Приоритетные сообщения снимаем в первую очередь.
AM> Ты CAN вообще видел, хотя бы документацию?
Видел. В чем проблема - сейчас как раз пишу монитор кана.
AM>>> Ты, я смотрбю и в этой области специалист, как считал?
MP>> Я упор считал, чтоб юзер-интерфейс не тормозил и стеки не
MP>> переполнялись. Реально там конечно и 1-й мс не набирается пока.
AM> За 1 мс передаются/принимаются 4 символа по UART на скорости 38400.
AM> А ты в это время торчишь в прерываниях, теряя символы.
Ты плохо читаешь ЭТО КУСОК МАЙHА! Лучше раскажи сколько колесных осей за 1мс
проезжает 1 точку ;) (минимальное расстояние меду осями в тележке). Я подумаю
какой приоритет нужен на прерывание датчика и что можно туда всунуть.
AM>>> А если кан слетел, что делать? Ждать в прерываниях пока он
AM>>> восстановится?
MP>> Зависит от времени востановления и ТЗ. Тут разную логику можно
MP>> предусмотреть...
AM> И всю в прерываниях?
Да. Часть в таймерных.
MP>> Зависит от сложности обработки. Возможно - да там. Причем на лету,
MP>> при приходе каждого байта, c помощью логики состояний.
AM> А при этом прерывание отметчика вагонов занимает 1 мс.
main счетчика вагонов занимает 1mc а может занять и 10мс - не вопрос!
AM> Так что ты выберешь, правильно посчитать вагоны или правильно принять
AM> пакет? Или поставишь 2 uC?
И то и другое. Прерывания датчика оси будут фиксировать тики и валить их в xram
- это 15 команд в пределе. main будет анализировать время по точкам и по
алгоритму анализа определять типы, например (могу ошибатся немного):
типа локомотив типа вагон
ooo ooo oo oo
1 2 3 4 5 6 7 8 9
o - оси. Представим временные метки от первой оси, t1-t9
t1 коррлирует с t2 t4 и t5 - это расстиояние между осями в тележках локомотива.
Зная время и расстояние между осями можем вычислить скорость локомотива.
t3 - время между тележками, пропорционально связанно с t1-t5 определяет тип
локомотива.(!?) И вроде меньше t8.
t6 - время между тележками локомотива и вагона (соседних локомотивов). Тоже
можно придумать зачем оно надо...
t7 корелирует с t9 и связано пропорцией с t8 - все это определяет тип вагона...
(кстати пропорции буду считать сопром - ленив я шибко в лоб считать).
Hу естественно анализ в условиях априорности, разные варианты (вагоны спереди,
N локомотивов подряд или в перемешку с вагонами)...
MP>>>> ожидания конца записи!
AM>>> А если запись не удалась, что делать?
MP>> Усложним алгоритм. К структуре блока записи добавляем 1 байт. 7-й
MP>> бит флаговый 0-write 1-verify. 0-6 счетчик попыток. Работает так -
MP>> после успешной записи пакет не снимается с стека а устанавливается
MP>> флаговый бит. В следующей итерации
AM> Кто эти итеррации будет запускать/проверять их результат?
Тяжело с тобой, по 10 раз одно и то-же пишу. Это timer (периодические
прерывания от таймера-счетчика). Частота порядка 25гц, приоритет никакой,
они-же обновляют экран и сканируют клаву.
MP>>>> Прерывания кана (опять-же не ясно, что делают твои
MP>>>> инфосообщения кроме как раскидываются по очередям) ;)
AM>>> Передаются потом по последовательным каналам, если логические
AM>>> соединения установлены.
MP>> Значит сразу пойдут в их TX буфера.
AM> А если пока не надо? Логической соединение не создано, оборвалось?
Значит будет БИТ который будет управлять состоянием {пока не надо}!
AM> А когда создалось, то нужно передавать сообщения в порядке их
AM> важности (приоритета).
У тебя какая-то непонятная логика. Hа уартах то как приоритеты будешь
устраивать? И главное логика более чем странная - нет чтоб поставить на CAN
шину отдельное устройство с этими мостами CAN-UART из того-же 18-го пика, так
ты все навесил на бедный проц вагонный. Они вообще нужны в устройстве уарты
эти? Или ты просто так их приплел, для усложнения?
AM>>> Ты CAN представляешь? Может легко свалиться сразу несколько
AM>>> сообщений подряд. Одно сообщение передается 100-200 мкс, где-то.
MP>> Хватит времени.
AM> Хватит или/или/или на обработку CAN, обработку UART, отметку вагонов.
AM> Да не беда, поставим 3 uC.
Всему хватит. Вагоны вообще не жрут ресурс.
MP>> Только вот для того, чтоб коректировать даже таблицы надо знать
MP>> как работает программа не так-ли?
AM> Hадо, и что?
А то!, учится надо, не у меня, а вообще...
MP>> Действительно ты сбил меня с толку. Конечно приоритет кана и
MP>> возможно уартов должен быть выше этих убогих capture. Ведь вагоны
MP>> в отличие от байтов в CAN не летают с околосветовыми скоростями, а
MP>> являются вполне осмысленной железной сущностью, обладающей не
MP>> малой длинной, весом, и абсолютно детской со всех точек зрения
MP>> скоростью ;).
AM> Какая разница, чем они являются.
Огромная. Вагоны не ездят по 3 штуки за 10мс. В отличие от байтов ;)
AM> Я тебе привел пиковую нагрузку для х51 по обработке срабатывания
AM> датчика оси. Куда бы ты не запихал, на какой бы приоритет - у тебя не
AM> хватит производительности все крутить в прерываниях.
Ладно - включаю дальше свою логику предположений. Максималка у поезда
километров 150 (41м/с) не ЭР200 там у вас летает, ну пусть даже 50м/с - 20мсек
на метр в тележке всяко не меньше полутора метров между осями. таким образом
быстрее, чем через 30 МИЛИСЕКУHД! прерывания по оси не возникнет по
определению. И что я тут пентиум что-ли должен поставить оси считать?
AM> Потому что ты используешь неэффективное распределение
AM> времени процессора.
Это ты используешь распределение времени. Я использую только предположения о
времени для формирования размера стеков обмена между компонентами. Так вот если
майн у меня 10мс за итерацию в упоре а оси случаются раз в 30мс МHЕ ДАЖЕ
ПРЕРЫВАHИЯ HЕ HУЖHЫ, а если нужны то только для пущего удобства - и глубина их
стека может ограничиватся цифрой нужной для фиксации тележки и типа (4-5
интервалов максимум). Короче, чем дальше в лес, тем в Xram вообще кроме как для
дисплея не полезем, и 18-й пик рулить этим легко сможет ;)
У тебя похоже логика другая - все что не решается на си в лоб в 1 майне,
решается на RTOS.
AM> То, что можно обработать на уровне задачи - ты сделал в прерываниях,
AM> хотя реально этой необходимости нет. Тем самым заблокировал систему
AM> от других событий полностью, на время обработки.
Ты просто не понял как это работает, наверно мне не суждено тебе это объяснить.
MP>> скажи мне пожалуйста, что кроме спефикации на RTOS ты читал в это
MP>> самое время? Мне действительно интересно почему твой вывод
MP>> базируется на том, что задача решаема только посредством RTOS?
AM> Я этого не говорил. В противном случае цитируй.
AM> Hо я утверждаю, что при помощи RTOS на сложных задачах, где существует
AM> множество асинхронных процессов, напрямую друг с другом не связанных,
AM> RTOS дает выигрыш, потому что более эффективно распределяет
AM> вычислительные ресурсы процессора, позволяя в данный конкретеный
AM> момент выполнять самую неотложную работу.
Разница в том, что ты распределяешь время, а я кладу задачу на железо, в
результате время распределяется мало того, что само, так еще с наивысшей
эфективностью.
Пока ты автоматом распределяешь локальные переменные в своем КЕЙЛ-е я автоматом
распределяю важнейший параметр - ВРЕМЯ ! ;)
AM> Писать под RTOS подобыне задачи гораздо проще и эффективнее, чем
AM> обеспечивать то же самое в foreground/background системе.
Зачем - когда это делается простыми прерываниями...
AM>>> Hе видишь, твои проблемы. Я вообще не о том.
MP>> А о чем? Ты хотел действие через 200мкс - получите!
AM> Я сказал, что от возникновения события до начала выполнения
AM> определенных действий должно пройти не более чем... Если пройдет более
AM> чем, и если я даже буду знать, на сколько "более" на момент начала
AM> этих действий - все равно уже будет поздно.
Тогда что мешает действия сделать сразу? Какие-то у тебя вечно сферические
задачи... То через 200мкс то сразу. То точно, теперь вот не позднее...
AM> Andy
WBR! Maxim Polyanskiy.

Тут обсуждаем нужность RTOS ;)
Tue Feb 10 2004 01:47, Maxim Polyanskiy wrote to Andy Mozzhevilov:
MP> Я тут прикинул, вспомнил какой издают звук вагоны и локомотивы при
MP> проезде колесных пар через стыки и понял, что достаточно 1-го
MP> единственного резонансного датчика удара для определения типа вагона,
MP> скорости состава, и даже типа+количества локомотивов которые его тянут,
MP> если его банально поставить в стык ;) аппаратно отсечь ось (кстати вот
MP> тут 675-й пик будет наверно действительно незаменим с своим АЦП - заменит
MP> кучу аналогового железа) и продумать логику анализа
MP> (по сравнению с
MP> задачей анализа аоновского сырого кода - эта действительно для детсада).
Да уж... Видимо АОH - самое сложное устройство в природе, ничего сложнее
просто не бывает. Или не все видели...
WBR, Юрий.
MP> Я тут прикинул, вспомнил какой издают звук вагоны и локомотивы при
MP> проезде колесных пар через стыки и понял, что достаточно 1-го
MP> единственного резонансного датчика удара для определения типа вагона,
MP> скорости состава, и даже типа+количества локомотивов которые его тянут,
MP> если его банально поставить в стык ;) аппаратно отсечь ось (кстати вот
MP> тут 675-й пик будет наверно действительно незаменим с своим АЦП - заменит
MP> кучу аналогового железа) и продумать логику анализа
MP> (по сравнению с
MP> задачей анализа аоновского сырого кода - эта действительно для детсада).
Да уж... Видимо АОH - самое сложное устройство в природе, ничего сложнее
просто не бывает. Или не все видели...
WBR, Юрий.

Re: Тут обсуждаем нужность RTOS ;)
Hello Maxim,
MP>>> Что еще ты пробовал?
AM>> foreground/background, кооперативную RTOS, вытесняющую RTOS.
AM>> Hужно что-то еще?
MP> Hапример прочитать для чего процессору даны прерывания и периферия
:)
Ну ты бы хоть не позорился.
foreground/background - это и есть система, работающаяя по принципу
фоновый цикл (background) + обработчики прерываний (foreground).
Есть не плохая книжка по ОС uCOS-II, в и-нете можно найти. Почитай,
чисто для самообразования, хотя бы терминологию знать будешь.
MP> (хотя у микропроцессорных извращенцев свои понятия - они
MP> ими видите-ли "задачи" переключают ;).
В вытесняющей RTOS в том числе и задачи.
AM>> В этом случае у тебя скорость обмена между твоими пиками ограничит
AM>> время реакции системы на события. А так считать можно, только кому это
AM>> будет нужно?
MP> Я тут прикинул, вспомнил какой издают звук вагоны и локомотивы при проезде
MP> колесных пар через стыки и понял, что достаточно 1-го единственного
MP> резонансного датчика удара для определения типа вагона, скорости состава, и
MP> даже типа+количества локомотивов которые его тянут, если его банально
поставить
MP> в стык ;) аппаратно отсечь ось (кстати вот тут 675-й пик будет наверно
MP> действительно незаменим с своим АЦП - заменит кучу аналогового железа) и
MP> продумать логику анализа (по сравнению с задачей анализа аоновского сырого
кода
MP> - эта действительно для детсада). А главное - хватит и одного 18 пика c одним
MP> ccp/can. ;)
Ты смотю еще тот теоретик. Я тебя огорчу:
1) Есть безстыковые пути
2) Системы контроля по правилам не устанавливаются напротив стыка.
3) ... но это уже совсем другая история и здесь оффтопик.
AM>> Конечно, эффективны они только у Полянского и Шепелева, остальным
AM>> просто "повезло".
MP> Остальные просто взяли более жирный процессор. Так можно делать далеко не
MP> всегда.
Если тиражи устройства не измеряются тысячами/десятками тысяч в месяц
или даже год, и устройства не предназначены для бытового
использования, то принципиально по барабану, какой там процессор, за
$3 или за $30. Поскольку в общей стоимости системы цена процессора
исчезающе мала. Процессор будет выбираться по критериям периферии, а
при выборе из нескольких идентичных по характеристикам - какой удобнее
программисту.
AM>> Ух ты какой быстрый. Может тебе еще и исходник кинуть, и ключ от
AM>> квартиры где деньги лежат?
MP> Твоя задача кроме полемического никакого другого интереса для меня не
MP> представляет. Так что скрывать тут нечего.
Тем не менее. Сообщения в конференции доступны всем, в том числе
потенциальным конкурентам.
AM>> За 1 мс передаются/принимаются 4 символа по UART на скорости 38400.
AM>> А ты в это время торчишь в прерываниях, теряя символы.
MP> Ты плохо читаешь ЭТО КУСОК МАЙHА!
Как? Ты же работаешь по прерываниям, в том числе обрабатываешь в
прерываниях и протокол обмена, и чуть ли не пишешь в них же в еепром.
MP> Лучше раскажи сколько колесных осей за 1мс
MP> проезжает 1 точку ;) (минимальное расстояние меду осями в тележке). Я подумаю
MP> какой приоритет нужен на прерывание датчика и что можно туда всунуть.
Дело не в том, сколько, а в том, что когда проезжает, система для
обработки события будет находиться в состоянии пиковой вычислительной
нагрузки. И если у тебя даже пиковая нагрузка составит 1 мс в
прерываниях - этого достаточно, чтобы потерять символ по UART, к
примеру.
MP>>> Зависит от сложности обработки. Возможно - да там. Причем на лету,
MP>>> при приходе каждого байта, c помощью логики состояний.
AM>> А при этом прерывание отметчика вагонов занимает 1 мс.
MP> main счетчика вагонов занимает 1mc а может занять и 10мс - не вопрос!
Только если ты в main молотишь все, и обработку протоколов, и экран,
и т.п. то где гарантия, что после фиксации события в прерываниях у
тебя main окажется в данный момент в наиболее благоприятной точке,
перед опросом флага наступившего события, а не сразу на ним, и сначала
обслужит дисплей, клавиатуру, символ и UART, возможно автомат записи в
ЕЕ, а лишь потом наконец доберется до самого приоритетного события?
AM>> Так что ты выберешь, правильно посчитать вагоны или правильно принять
AM>> пакет? Или поставишь 2 uC?
MP> И то и другое. Прерывания датчика оси будут фиксировать тики и валить их в
xram
MP> - это 15 команд в пределе. main будет анализировать время по точкам и по
MP> алгоритму анализа определять типы, например (могу ошибатся немного):
Подожди, события еще нужно отправлять в КАН в реальном времени.
Неинтересно и недопустимо подхватить это событие в main через 10мс
после его наступления.
MP> типа локомотив типа вагон
MP> ooo ooo oo oo
MP> 1 2 3 4 5 6 7 8 9
MP> o - оси. Представим временные метки от первой оси, t1-t9
Локомотивы бывают разные, голубые и красные. И расстояние в тележках у
них разное, и даже количество осей. Но это не относится к теме, не
надо мне приводить гипотетические алгоритмы, они все равно не верны,
потому что ты не знаешь этой темы (и в общем то и не должен знать).
MP>>> после успешной записи пакет не снимается с стека а устанавливается
MP>>> флаговый бит. В следующей итерации
AM>> Кто эти итеррации будет запускать/проверять их результат?
MP> Тяжело с тобой, по 10 раз одно и то-же пишу. Это timer (периодические
MP> прерывания от таймера-счетчика). Частота порядка 25гц, приоритет никакой,
MP> они-же обновляют экран и сканируют клаву.
Тогда если ты в main обрабатываешь события от UART к примеру, о чем
выше писал, то это прерывание у тебя заблокирует main и результатом
может быть потеря символа, к примеру. Или задержка отправки сообщения
по CAN.
AM>> А когда создалось, то нужно передавать сообщения в порядке их
AM>> важности (приоритета).
MP> У тебя какая-то непонятная логика. Hа уартах то как приоритеты будешь
MP> устраивать? И главное логика более чем странная - нет чтоб поставить на CAN
MP> шину отдельное устройство с этими мостами CAN-UART из того-же 18-го пика,
А uart не обеспечит нужной пропускной способности, а нагрузку на
систему только добавит, потому что CAN оперирует сообщениями, а UART
символами. При идентичном информационном потоке нагрузка процессора
для обработки UART значительно выше. И к тому же на борту встроенный
CAN, зачем еще городить лишний огород?
MP> так ты все навесил на бедный проц вагонный.
Потому что межпроцессорное взаимодействие - это отдельная сложная
песня. Гораздо сложнее, чем взаиможействие задач, выполняемых на одном
процессоре.
Потом, MB90F543, который сейчас там стоит имеет пиковую нагрузку где-то
под 60%, что вполне нормально.
MP> Они вообще нужны в устройстве уарты эти? Или ты просто так их приплел,
MP> для усложнения?
Конечно, устройство по ним обменивается информацией с АРМ-ами.
AM>> Хватит или/или/или на обработку CAN, обработку UART, отметку вагонов.
AM>> Да не беда, поставим 3 uC.
MP> Всему хватит. Вагоны вообще не жрут ресурс.
Я тебе привел реально необходимое время для работы ~500 мкс реального
алгоритма на х51 . Алгоритм, конечно несколько более сложный, чем просто
счет вагонов, там предусмотрено устранение сбоев датчиков осей, определение
вагонов с нестандартным расположением осей, но это не тема данного
обсуждения.
MP>>> Только вот для того, чтоб коректировать даже таблицы надо знать
MP>>> как работает программа не так-ли?
AM>> Hадо, и что?
MP> А то!, учится надо, не у меня, а вообще...
Так вот ты с себя и начни, почитай для самообразования книжку по
uCOS-II, чтобы разговаривать на одном языке, или хотя бы близких
диалектах. А то опять получается, споришь о вкусе устриц, а сам их не
ел.
MP>>> малой длинной, весом, и абсолютно детской со всех точек зрения
MP>>> скоростью ;).
AM>> Какая разница, чем они являются.
MP> Огромная. Вагоны не ездят по 3 штуки за 10мс. В отличие от байтов ;)
AM>> Я тебе привел пиковую нагрузку для х51 по обработке срабатывания
AM>> датчика оси. Куда бы ты не запихал, на какой бы приоритет - у тебя не
AM>> хватит производительности все крутить в прерываниях.
MP> Ладно - включаю дальше свою логику предположений. Максималка у поезда
MP> километров 150 (41м/с) не ЭР200 там у вас летает
Не "у вас там". Аппаратура работает на всей сети ж.д. Или ты думаешь
каждая дорога выпускает и внедряет свой тип устройств?
MP> , ну пусть даже 50м/с - 20мсек
MP> на метр в тележке всяко не меньше полутора метров между осями.
1.85 - в грузовых, 2.4 - в пассажирских.
MP> таким образом быстрее, чем через 30 МИЛИСЕКУHД! прерывания по оси
MP> не возникнет по определению. И что я тут пентиум что-ли должен поставить
MP> оси считать?
Я не про то, что не возникают, а про то, что когда возникают, да хоть
раз в минуту, это прерывание не должно поставить раком всю системы,
потерять символ из UART, сообщение из CAN и т.п.
AM>> Потому что ты используешь неэффективное распределение
AM>> времени процессора.
MP> Это ты используешь распределение времени. Я использую только предположения о
MP> времени для формирования размера стеков обмена между компонентами. Так вот
если
MP> майн у меня 10мс за итерацию в упоре а оси случаются раз в 30мс МHЕ ДАЖЕ
MP> ПРЕРЫВАHИЯ HЕ HУЖHЫ,
Ты не понимаешь о чем я говорю. Объясняю последний раз, больше не
буду.
Событие<--Время_реакции-->Начало_обработки_события<-->Передача_сообщения
В контексе обсуждения счета вагонов.
Событие - срабатывание оси.
Время_реакции - время от фактического срабатывания датчика оси до начала
обработки.
Обработка события - принятие решения об отметке вагона, типе вагона,
наличии сбоев и .т.п.
Передача_сообщения - передача о наступлении события по CAN другим
подсистемам.
По условию задачи - время от "событие" до "передача_сообщения" должно
быть более 500 мкс. Поскольку другие подсистемы синхронизируются от
событий датчиков осей, отметки вагонов и т.п.
Если ты крутишь обработчик в main, и он у тебя 10 мс, то ты не
пролазишь по времени событие<->передача_события, потому что в main у
тебя произойдет подхват события из прерывания в наихудшем случае
только через 10 мс.
Если ты полностью поместил цепочку в прерывание от датчика оси, то
время, на которое система будет заблокирована для обработки составит
как раз 400-500 мкс. Ты укладываешься по времени, но ставишь раком всю
систему, блокируешь прерывания от двух каналов UART, CAN и
провоцируешь потерю символов в сообщений по ним.
Вывод - ты пытаешь натянуть презерватив на футбольный мяч.
Презервативом в данном случае является х51 с явно недостаточными
вычислительными ресурсами. Мячом - foreground/background система.
Если ты возьмешь презерватив большего размера (16-ти битный uC к
примеру), то возможно за счет лобовых методов (бОльшего быстродействия)
у тебя получиться его натянуть на мяч foreground/background. Но
уменьшив размер мяча и применив вытесняющую RTOS это будет сделать еще
проще.
MP> У тебя похоже логика другая - все что не решается на си в лоб в 1 майне,
MP> решается на RTOS.
Нет, у меня не такая логика. Но RTOS - это приятно, эффективно,
сопровождаемо. Если даже RTOS явно не нужна по задаче, но ресурсы позволяют,
я попытаюсь ее применить. А если уж показания к RTOS явные - то тем
более.
AM>> То, что можно обработать на уровне задачи - ты сделал в прерываниях,
AM>> хотя реально этой необходимости нет. Тем самым заблокировал систему
AM>> от других событий полностью, на время обработки.
MP> Ты просто не понял как это работает,
Уточнение - могло бы работать, теоретически.
MP> наверно мне не суждено тебе это объяснить.
В одном письме ты писал, что у тебя вся логика обработки вагонов в
прерываниях:
----
Все датчики заводятся на входы пинов автомата CAPTURE. Прерываниям по событиям
CAPTURE назначается высший приоритет. Вся логика счета вагонов - внутри этих
прерываний. Временные метки между любыми из датчиков на аппаратном уровне
получаются с точностью до одного тика Т2. Мат сопроцесор позволяет производить
----
а в main чуть ли ну пустой цикл, обработка юзеровского интерфейса.
В этом письме ты в main уже занял 10мс, в том числе на обсчет отметки.
Так это ты не умеешь объяснять, или я понимать?
MP>>> скажи мне пожалуйста, что кроме спефикации на RTOS ты читал в это
MP>>> самое время? Мне действительно интересно почему твой вывод
MP>>> базируется на том, что задача решаема только посредством RTOS?
AM>> Я этого не говорил. В противном случае цитируй.
AM>> Hо я утверждаю, что при помощи RTOS на сложных задачах, где существует
AM>> множество асинхронных процессов, напрямую друг с другом не связанных,
AM>> RTOS дает выигрыш, потому что более эффективно распределяет
AM>> вычислительные ресурсы процессора, позволяя в данный конкретеный
AM>> момент выполнять самую неотложную работу.
MP> Разница в том, что ты распределяешь время, а я кладу задачу на железо, в
MP> результате время распределяется мало того, что само, так еще с наивысшей
MP> эфективностью.
Это не так. Если задача полностью может быть размещена в прерываниях,
то есть она настолько небольшая, что не вызовет какого-либо влияния и
ощутимых задержек на обработку других прерываний, то это не задача в
понимании RTOS. И в RTOS точно также могут существовать прерывания, не
связанные с уровнем задачи вообще, в которых будут производиться эти
же самые действия.
Если же событие, возникшее в прерывании (или по таймауту ожидания
чего-либо) нужно обработать именно в на уровне main, поскольку
обработка достаточна громоздка, занимает много времени и может
заблокировать другие прерывания, то RTOS обеспечит детерминированное
время реакции на такое событие. То есть:
TaskWaitEvent-->EventIsr-->TaskExecute-->TaskWaitEvent
Взамен:
MainLoop
{
if (event1) ...
if (event2) ... << Момент Event1Isr
if (event3) ...
if (event4) ...
}
Event1Isr
{
set event1
}
когда время будет зависеть от наличия других событий в системе,
возможно менее приоритетных, чем event1.
MP> Пока ты автоматом распределяешь локальные переменные в своем КЕЙЛ-е я
автоматом
MP> распределяю важнейший параметр - ВРЕМЯ ! ;)
Эти утверждения от твоего незнания.
AM>> Писать под RTOS подобыне задачи гораздо проще и эффективнее, чем
AM>> обеспечивать то же самое в foreground/background системе.
MP> Зачем - когда это делается простыми прерываниями...
Это не делается всегда, смотри пример выше.
Хотя иногда делается, и многие делают, значит задачи такие, которые
это сделать позволяют.
AM>> чем, и если я даже буду знать, на сколько "более" на момент начала
AM>> этих действий - все равно уже будет поздно.
MP> Тогда что мешает действия сделать сразу?
Эти действия могут быть достаточно громоздки и занимать некоторое
время, причем гораздо большее допустимого времени нахождения в
прерывании, из-за блокирования этим прерыванием других, не менее
важных.
MP> Какие-то у тебя вечно сферические задачи...
Вполне реальные и тиражируемые.
MP>>> Что еще ты пробовал?
AM>> foreground/background, кооперативную RTOS, вытесняющую RTOS.
AM>> Hужно что-то еще?
MP> Hапример прочитать для чего процессору даны прерывания и периферия
:)
Ну ты бы хоть не позорился.
foreground/background - это и есть система, работающаяя по принципу
фоновый цикл (background) + обработчики прерываний (foreground).
Есть не плохая книжка по ОС uCOS-II, в и-нете можно найти. Почитай,
чисто для самообразования, хотя бы терминологию знать будешь.
MP> (хотя у микропроцессорных извращенцев свои понятия - они
MP> ими видите-ли "задачи" переключают ;).
В вытесняющей RTOS в том числе и задачи.
AM>> В этом случае у тебя скорость обмена между твоими пиками ограничит
AM>> время реакции системы на события. А так считать можно, только кому это
AM>> будет нужно?
MP> Я тут прикинул, вспомнил какой издают звук вагоны и локомотивы при проезде
MP> колесных пар через стыки и понял, что достаточно 1-го единственного
MP> резонансного датчика удара для определения типа вагона, скорости состава, и
MP> даже типа+количества локомотивов которые его тянут, если его банально
поставить
MP> в стык ;) аппаратно отсечь ось (кстати вот тут 675-й пик будет наверно
MP> действительно незаменим с своим АЦП - заменит кучу аналогового железа) и
MP> продумать логику анализа (по сравнению с задачей анализа аоновского сырого
кода
MP> - эта действительно для детсада). А главное - хватит и одного 18 пика c одним
MP> ccp/can. ;)
Ты смотю еще тот теоретик. Я тебя огорчу:
1) Есть безстыковые пути
2) Системы контроля по правилам не устанавливаются напротив стыка.
3) ... но это уже совсем другая история и здесь оффтопик.
AM>> Конечно, эффективны они только у Полянского и Шепелева, остальным
AM>> просто "повезло".
MP> Остальные просто взяли более жирный процессор. Так можно делать далеко не
MP> всегда.
Если тиражи устройства не измеряются тысячами/десятками тысяч в месяц
или даже год, и устройства не предназначены для бытового
использования, то принципиально по барабану, какой там процессор, за
$3 или за $30. Поскольку в общей стоимости системы цена процессора
исчезающе мала. Процессор будет выбираться по критериям периферии, а
при выборе из нескольких идентичных по характеристикам - какой удобнее
программисту.
AM>> Ух ты какой быстрый. Может тебе еще и исходник кинуть, и ключ от
AM>> квартиры где деньги лежат?
MP> Твоя задача кроме полемического никакого другого интереса для меня не
MP> представляет. Так что скрывать тут нечего.
Тем не менее. Сообщения в конференции доступны всем, в том числе
потенциальным конкурентам.
AM>> За 1 мс передаются/принимаются 4 символа по UART на скорости 38400.
AM>> А ты в это время торчишь в прерываниях, теряя символы.
MP> Ты плохо читаешь ЭТО КУСОК МАЙHА!
Как? Ты же работаешь по прерываниям, в том числе обрабатываешь в
прерываниях и протокол обмена, и чуть ли не пишешь в них же в еепром.
MP> Лучше раскажи сколько колесных осей за 1мс
MP> проезжает 1 точку ;) (минимальное расстояние меду осями в тележке). Я подумаю
MP> какой приоритет нужен на прерывание датчика и что можно туда всунуть.
Дело не в том, сколько, а в том, что когда проезжает, система для
обработки события будет находиться в состоянии пиковой вычислительной
нагрузки. И если у тебя даже пиковая нагрузка составит 1 мс в
прерываниях - этого достаточно, чтобы потерять символ по UART, к
примеру.
MP>>> Зависит от сложности обработки. Возможно - да там. Причем на лету,
MP>>> при приходе каждого байта, c помощью логики состояний.
AM>> А при этом прерывание отметчика вагонов занимает 1 мс.
MP> main счетчика вагонов занимает 1mc а может занять и 10мс - не вопрос!
Только если ты в main молотишь все, и обработку протоколов, и экран,
и т.п. то где гарантия, что после фиксации события в прерываниях у
тебя main окажется в данный момент в наиболее благоприятной точке,
перед опросом флага наступившего события, а не сразу на ним, и сначала
обслужит дисплей, клавиатуру, символ и UART, возможно автомат записи в
ЕЕ, а лишь потом наконец доберется до самого приоритетного события?
AM>> Так что ты выберешь, правильно посчитать вагоны или правильно принять
AM>> пакет? Или поставишь 2 uC?
MP> И то и другое. Прерывания датчика оси будут фиксировать тики и валить их в
xram
MP> - это 15 команд в пределе. main будет анализировать время по точкам и по
MP> алгоритму анализа определять типы, например (могу ошибатся немного):
Подожди, события еще нужно отправлять в КАН в реальном времени.
Неинтересно и недопустимо подхватить это событие в main через 10мс
после его наступления.
MP> типа локомотив типа вагон
MP> ooo ooo oo oo
MP> 1 2 3 4 5 6 7 8 9
MP> o - оси. Представим временные метки от первой оси, t1-t9
Локомотивы бывают разные, голубые и красные. И расстояние в тележках у
них разное, и даже количество осей. Но это не относится к теме, не
надо мне приводить гипотетические алгоритмы, они все равно не верны,
потому что ты не знаешь этой темы (и в общем то и не должен знать).
MP>>> после успешной записи пакет не снимается с стека а устанавливается
MP>>> флаговый бит. В следующей итерации
AM>> Кто эти итеррации будет запускать/проверять их результат?
MP> Тяжело с тобой, по 10 раз одно и то-же пишу. Это timer (периодические
MP> прерывания от таймера-счетчика). Частота порядка 25гц, приоритет никакой,
MP> они-же обновляют экран и сканируют клаву.
Тогда если ты в main обрабатываешь события от UART к примеру, о чем
выше писал, то это прерывание у тебя заблокирует main и результатом
может быть потеря символа, к примеру. Или задержка отправки сообщения
по CAN.
AM>> А когда создалось, то нужно передавать сообщения в порядке их
AM>> важности (приоритета).
MP> У тебя какая-то непонятная логика. Hа уартах то как приоритеты будешь
MP> устраивать? И главное логика более чем странная - нет чтоб поставить на CAN
MP> шину отдельное устройство с этими мостами CAN-UART из того-же 18-го пика,
А uart не обеспечит нужной пропускной способности, а нагрузку на
систему только добавит, потому что CAN оперирует сообщениями, а UART
символами. При идентичном информационном потоке нагрузка процессора
для обработки UART значительно выше. И к тому же на борту встроенный
CAN, зачем еще городить лишний огород?
MP> так ты все навесил на бедный проц вагонный.
Потому что межпроцессорное взаимодействие - это отдельная сложная
песня. Гораздо сложнее, чем взаиможействие задач, выполняемых на одном
процессоре.
Потом, MB90F543, который сейчас там стоит имеет пиковую нагрузку где-то
под 60%, что вполне нормально.
MP> Они вообще нужны в устройстве уарты эти? Или ты просто так их приплел,
MP> для усложнения?
Конечно, устройство по ним обменивается информацией с АРМ-ами.
AM>> Хватит или/или/или на обработку CAN, обработку UART, отметку вагонов.
AM>> Да не беда, поставим 3 uC.
MP> Всему хватит. Вагоны вообще не жрут ресурс.
Я тебе привел реально необходимое время для работы ~500 мкс реального
алгоритма на х51 . Алгоритм, конечно несколько более сложный, чем просто
счет вагонов, там предусмотрено устранение сбоев датчиков осей, определение
вагонов с нестандартным расположением осей, но это не тема данного
обсуждения.
MP>>> Только вот для того, чтоб коректировать даже таблицы надо знать
MP>>> как работает программа не так-ли?
AM>> Hадо, и что?
MP> А то!, учится надо, не у меня, а вообще...
Так вот ты с себя и начни, почитай для самообразования книжку по
uCOS-II, чтобы разговаривать на одном языке, или хотя бы близких
диалектах. А то опять получается, споришь о вкусе устриц, а сам их не
ел.
MP>>> малой длинной, весом, и абсолютно детской со всех точек зрения
MP>>> скоростью ;).
AM>> Какая разница, чем они являются.
MP> Огромная. Вагоны не ездят по 3 штуки за 10мс. В отличие от байтов ;)
AM>> Я тебе привел пиковую нагрузку для х51 по обработке срабатывания
AM>> датчика оси. Куда бы ты не запихал, на какой бы приоритет - у тебя не
AM>> хватит производительности все крутить в прерываниях.
MP> Ладно - включаю дальше свою логику предположений. Максималка у поезда
MP> километров 150 (41м/с) не ЭР200 там у вас летает
Не "у вас там". Аппаратура работает на всей сети ж.д. Или ты думаешь
каждая дорога выпускает и внедряет свой тип устройств?
MP> , ну пусть даже 50м/с - 20мсек
MP> на метр в тележке всяко не меньше полутора метров между осями.
1.85 - в грузовых, 2.4 - в пассажирских.
MP> таким образом быстрее, чем через 30 МИЛИСЕКУHД! прерывания по оси
MP> не возникнет по определению. И что я тут пентиум что-ли должен поставить
MP> оси считать?
Я не про то, что не возникают, а про то, что когда возникают, да хоть
раз в минуту, это прерывание не должно поставить раком всю системы,
потерять символ из UART, сообщение из CAN и т.п.
AM>> Потому что ты используешь неэффективное распределение
AM>> времени процессора.
MP> Это ты используешь распределение времени. Я использую только предположения о
MP> времени для формирования размера стеков обмена между компонентами. Так вот
если
MP> майн у меня 10мс за итерацию в упоре а оси случаются раз в 30мс МHЕ ДАЖЕ
MP> ПРЕРЫВАHИЯ HЕ HУЖHЫ,
Ты не понимаешь о чем я говорю. Объясняю последний раз, больше не
буду.
Событие<--Время_реакции-->Начало_обработки_события<-->Передача_сообщения
В контексе обсуждения счета вагонов.
Событие - срабатывание оси.
Время_реакции - время от фактического срабатывания датчика оси до начала
обработки.
Обработка события - принятие решения об отметке вагона, типе вагона,
наличии сбоев и .т.п.
Передача_сообщения - передача о наступлении события по CAN другим
подсистемам.
По условию задачи - время от "событие" до "передача_сообщения" должно
быть более 500 мкс. Поскольку другие подсистемы синхронизируются от
событий датчиков осей, отметки вагонов и т.п.
Если ты крутишь обработчик в main, и он у тебя 10 мс, то ты не
пролазишь по времени событие<->передача_события, потому что в main у
тебя произойдет подхват события из прерывания в наихудшем случае
только через 10 мс.
Если ты полностью поместил цепочку в прерывание от датчика оси, то
время, на которое система будет заблокирована для обработки составит
как раз 400-500 мкс. Ты укладываешься по времени, но ставишь раком всю
систему, блокируешь прерывания от двух каналов UART, CAN и
провоцируешь потерю символов в сообщений по ним.
Вывод - ты пытаешь натянуть презерватив на футбольный мяч.
Презервативом в данном случае является х51 с явно недостаточными
вычислительными ресурсами. Мячом - foreground/background система.
Если ты возьмешь презерватив большего размера (16-ти битный uC к
примеру), то возможно за счет лобовых методов (бОльшего быстродействия)
у тебя получиться его натянуть на мяч foreground/background. Но
уменьшив размер мяча и применив вытесняющую RTOS это будет сделать еще
проще.
MP> У тебя похоже логика другая - все что не решается на си в лоб в 1 майне,
MP> решается на RTOS.
Нет, у меня не такая логика. Но RTOS - это приятно, эффективно,
сопровождаемо. Если даже RTOS явно не нужна по задаче, но ресурсы позволяют,
я попытаюсь ее применить. А если уж показания к RTOS явные - то тем
более.
AM>> То, что можно обработать на уровне задачи - ты сделал в прерываниях,
AM>> хотя реально этой необходимости нет. Тем самым заблокировал систему
AM>> от других событий полностью, на время обработки.
MP> Ты просто не понял как это работает,
Уточнение - могло бы работать, теоретически.
MP> наверно мне не суждено тебе это объяснить.
В одном письме ты писал, что у тебя вся логика обработки вагонов в
прерываниях:
----
Все датчики заводятся на входы пинов автомата CAPTURE. Прерываниям по событиям
CAPTURE назначается высший приоритет. Вся логика счета вагонов - внутри этих
прерываний. Временные метки между любыми из датчиков на аппаратном уровне
получаются с точностью до одного тика Т2. Мат сопроцесор позволяет производить
----
а в main чуть ли ну пустой цикл, обработка юзеровского интерфейса.
В этом письме ты в main уже занял 10мс, в том числе на обсчет отметки.
Так это ты не умеешь объяснять, или я понимать?
MP>>> скажи мне пожалуйста, что кроме спефикации на RTOS ты читал в это
MP>>> самое время? Мне действительно интересно почему твой вывод
MP>>> базируется на том, что задача решаема только посредством RTOS?
AM>> Я этого не говорил. В противном случае цитируй.
AM>> Hо я утверждаю, что при помощи RTOS на сложных задачах, где существует
AM>> множество асинхронных процессов, напрямую друг с другом не связанных,
AM>> RTOS дает выигрыш, потому что более эффективно распределяет
AM>> вычислительные ресурсы процессора, позволяя в данный конкретеный
AM>> момент выполнять самую неотложную работу.
MP> Разница в том, что ты распределяешь время, а я кладу задачу на железо, в
MP> результате время распределяется мало того, что само, так еще с наивысшей
MP> эфективностью.
Это не так. Если задача полностью может быть размещена в прерываниях,
то есть она настолько небольшая, что не вызовет какого-либо влияния и
ощутимых задержек на обработку других прерываний, то это не задача в
понимании RTOS. И в RTOS точно также могут существовать прерывания, не
связанные с уровнем задачи вообще, в которых будут производиться эти
же самые действия.
Если же событие, возникшее в прерывании (или по таймауту ожидания
чего-либо) нужно обработать именно в на уровне main, поскольку
обработка достаточна громоздка, занимает много времени и может
заблокировать другие прерывания, то RTOS обеспечит детерминированное
время реакции на такое событие. То есть:
TaskWaitEvent-->EventIsr-->TaskExecute-->TaskWaitEvent
Взамен:
MainLoop
{
if (event1) ...
if (event2) ... << Момент Event1Isr
if (event3) ...
if (event4) ...
}
Event1Isr
{
set event1
}
когда время будет зависеть от наличия других событий в системе,
возможно менее приоритетных, чем event1.
MP> Пока ты автоматом распределяешь локальные переменные в своем КЕЙЛ-е я
автоматом
MP> распределяю важнейший параметр - ВРЕМЯ ! ;)
Эти утверждения от твоего незнания.
AM>> Писать под RTOS подобыне задачи гораздо проще и эффективнее, чем
AM>> обеспечивать то же самое в foreground/background системе.
MP> Зачем - когда это делается простыми прерываниями...
Это не делается всегда, смотри пример выше.
Хотя иногда делается, и многие делают, значит задачи такие, которые
это сделать позволяют.
AM>> чем, и если я даже буду знать, на сколько "более" на момент начала
AM>> этих действий - все равно уже будет поздно.
MP> Тогда что мешает действия сделать сразу?
Эти действия могут быть достаточно громоздки и занимать некоторое
время, причем гораздо большее допустимого времени нахождения в
прерывании, из-за блокирования этим прерыванием других, не менее
важных.
MP> Какие-то у тебя вечно сферические задачи...
Вполне реальные и тиражируемые.
--
С уважением,
Andy
С уважением,
Andy
We've slightly trimmed the long signature. Click to see the full one.

Re: Тут обсуждаем нужность RTOS ;)
сообщил/сообщила в новостях следующее:

Да ты на попятный-то не сдавай.

любых типов

ресурсная штука.
Да ты хоть видел этот ДМРВ подохший? Hа тазиках с крООтым бошевским (или
каким там?) датчиком может и дохнет, но мне такая машина нах не нужна. Здесь
половина легковушек - японки - ни у кого не дохнет, ездят годами, под капот
заглядывают только на станции замены масла и то если в кафешку при СТО идти
неохота. Hе дохнет этот датчик массово. Hо случится может что угодно, мне
даже рассказывали (сам ни у кого не видел) про подкисшие контакты в
разъемах. И когда что-то случилось, а ехать получается то машина обязана
ехать, и вид этого кода, которым она при этом пользуется - ФМЕ.

Систем которые не ломаюцца в природе не существует.
Денис.
P.S. тут однако из треда филиал карза получается я однако свернусь пока
модератор не увидел, а то потом больно будет.

Да ты на попятный-то не сдавай.

любых типов

ресурсная штука.
Да ты хоть видел этот ДМРВ подохший? Hа тазиках с крООтым бошевским (или
каким там?) датчиком может и дохнет, но мне такая машина нах не нужна. Здесь
половина легковушек - японки - ни у кого не дохнет, ездят годами, под капот
заглядывают только на станции замены масла и то если в кафешку при СТО идти
неохота. Hе дохнет этот датчик массово. Hо случится может что угодно, мне
даже рассказывали (сам ни у кого не видел) про подкисшие контакты в
разъемах. И когда что-то случилось, а ехать получается то машина обязана
ехать, и вид этого кода, которым она при этом пользуется - ФМЕ.

Систем которые не ломаюцца в природе не существует.
Денис.
P.S. тут однако из треда филиал карза получается я однако свернусь пока
модератор не увидел, а то потом больно будет.

Тут обсуждаем нужность RTOS ;)
Hello, Dennis!
Втp Фев 10 2004, Dennis Opanasenko писал к All по поводу "Re: Тут обсуждаем
DO> Да ты хоть видел этот ДМРВ подохший?
Hеоднократно. Кроме тазиков - на фольксах и опелях.
DO> Hа тазиках с крООтым бошевским (или каким там?) датчиком может и
DO> дохнет, но мне такая машина нах не нужна. Здесь половина легковушек -
DO> японки - ни у кого не дохнет, ездят годами, под капот заглядывают
DO> только на станции замены масла и то если в кафешку при СТО идти
DO> неохота. Hе дохнет этот датчик массово.
Ты уверен? Ты знаешь как это проявляется? Ты знаешь причины? Может у тебя уже
сдох давно...
>> Чем-же тебе так не нравится идея "не ломатся"? ;)
DO> Систем которые не ломаюцца в природе не существует.
Еще как существуют.
DO> Денис.
WBR! Maxim Polyanskiy.
Втp Фев 10 2004, Dennis Opanasenko писал к All по поводу "Re: Тут обсуждаем
DO> Да ты хоть видел этот ДМРВ подохший?
Hеоднократно. Кроме тазиков - на фольксах и опелях.
DO> Hа тазиках с крООтым бошевским (или каким там?) датчиком может и
DO> дохнет, но мне такая машина нах не нужна. Здесь половина легковушек -
DO> японки - ни у кого не дохнет, ездят годами, под капот заглядывают
DO> только на станции замены масла и то если в кафешку при СТО идти
DO> неохота. Hе дохнет этот датчик массово.
Ты уверен? Ты знаешь как это проявляется? Ты знаешь причины? Может у тебя уже
сдох давно...
>> Чем-же тебе так не нравится идея "не ломатся"? ;)
DO> Систем которые не ломаюцца в природе не существует.
Еще как существуют.
DO> Денис.
WBR! Maxim Polyanskiy.

Тут обсуждаем нужность RTOS ;)
Привет, *Maxim*!
/вторник, 10 февраля 2004/ *Maxim Polyanskiy* писал(а) к *Dennis Opanasenko*
по поводу *Тут обсуждаем нужность RTOS ;):*
DO>> Да ты хоть видел этот ДМРВ подохший?
MP> Hеоднократно. Кроме тазиков - на фольксах и опелях.
DO>> Hа тазиках с крООтым бошевским (или каким там?) датчиком может и
Угу. Вот бошевский и дохнет. Часто.
И на фольксах с опелями скорее всего он-же и стоит.
DO>> дохнет, но мне такая машина нах не нужна. Здесь половина легковушек -
DO>> японки - ни у кого не дохнет, ездят годами, под капот заглядывают
DO>> только на станции замены масла и то если в кафешку при СТО идти
DO>> неохота. Hе дохнет этот датчик массово.
MP> Ты уверен? Ты знаешь как это проявляется? Ты знаешь причины? Может у
MP> тебя уже сдох давно...
Но при этом машинка будет ездить - и даже не особо "пердеть".
И жрать лишь немного побольше.
[кусь]
/вторник, 10 февраля 2004/ *Maxim Polyanskiy* писал(а) к *Dennis Opanasenko*
по поводу *Тут обсуждаем нужность RTOS ;):*
DO>> Да ты хоть видел этот ДМРВ подохший?
MP> Hеоднократно. Кроме тазиков - на фольксах и опелях.
DO>> Hа тазиках с крООтым бошевским (или каким там?) датчиком может и
Угу. Вот бошевский и дохнет. Часто.
И на фольксах с опелями скорее всего он-же и стоит.
DO>> дохнет, но мне такая машина нах не нужна. Здесь половина легковушек -
DO>> японки - ни у кого не дохнет, ездят годами, под капот заглядывают
DO>> только на станции замены масла и то если в кафешку при СТО идти
DO>> неохота. Hе дохнет этот датчик массово.
MP> Ты уверен? Ты знаешь как это проявляется? Ты знаешь причины? Может у
MP> тебя уже сдох давно...
Но при этом машинка будет ездить - и даже не особо "пердеть".
И жрать лишь немного побольше.
[кусь]
--
Всего наилучшего,
Андрей.
Всего наилучшего,
Андрей.
We've slightly trimmed the long signature. Click to see the full one.
Site Timeline
- » Fwd: Радиомодули 433.92MHz
- — Next thread in » Microcontrollers (Russian)
-
- » Кряк для PICC 8.02 PL1
- — Previous thread in » Microcontrollers (Russian)
-
- » По моему это гениально
- — Newest thread in » Microcontrollers (Russian)
-
- » Suche nach Steckverbindung?
- — The site's Newest Thread. Posted in » Electronics (German)
-
- » (PDF) Illustrated Anatomy of the Head and Neck 5th Edition by Fehrenbach
- — The site's Last Updated Thread. Posted in » Electronics (Polish)
-