-
- Хрен знает. Я в бесконечном цикле по кругу запускаю несколько псевдо-параллельных потоков с помощью указателей на соответствующий массив функций. Надежно, выгодно, удобно. Для простых и средних по сложности задач. - Petrovich(20.10.2014 11:07, )
- у PT "тик" переключения задач - единицы..десятки мкс, у "взрослых" ОС - единицы мс. Хотя при желании задачи PT без проблем привязываются к любому "тику". За счет кооперативности переменные - атомарны, нет нагромождения всяких zeleny(30 знак., 20.10.2014 02:29 - 02:32)
- Если "программист начинает сходу писать говнокод из головы", то фигня получается в любом случае. symbions(245 знак., 19.10.2014 20:54)
- А почему из головы плохо? Предлагаете писать говнокод сразу из жо*ы? - Олдфаг(20.10.2014 09:22, )
- Лучше автоматически генерировать, из диаграмм Ганта, автоматическими генераторами. - Скрипач(20.10.2014 09:44 - 10:14)
- автоматически генерить автоматическими генераторами автоматической генерации ))) - POV(20.10.2014 09:51)
- Человекоподобные роботы-ымбеддеры оставят нас без работы! - SciFi(20.10.2014 09:55)
- "Без работы" - фигня, лишь бы не оставили без зарплаты :) - Скрипач(20.10.2014 09:57)
- Я бы на месте того робота делиться не стал :-) - SciFi(20.10.2014 09:59)
- Ха! А представь: ты - начальник департамента автоматической генерации :) В подчинении куча
распиздяевроботов. Нервы, постоянные срывы сроков генерации из-за зависаний WinRT или кривого обновления Линуксов из репозитариев :) - Скрипач(20.10.2014 10:03) - Зарплата роботам не нужна. Они будут работать, а зарплату получать будем мы. - BlackPrapor(20.10.2014 10:03)
- Наивный. Все знают, что они подключат нас к Матрице и превратят нас в батарейки. - SciFi(20.10.2014 10:06)
- Такой работ еще за
пивоммаслом погонит. - POV(20.10.2014 10:02)
- Ха! А представь: ты - начальник департамента автоматической генерации :) В подчинении куча
- Я бы на месте того робота делиться не стал :-) - SciFi(20.10.2014 09:59)
- "Без работы" - фигня, лишь бы не оставили без зарплаты :) - Скрипач(20.10.2014 09:57)
- Человекоподобные роботы-ымбеддеры оставят нас без работы! - SciFi(20.10.2014 09:55)
- автоматически генерить автоматическими генераторами автоматической генерации ))) - POV(20.10.2014 09:51)
- Лучше автоматически генерировать, из диаграмм Ганта, автоматическими генераторами. - Скрипач(20.10.2014 09:44 - 10:14)
- Затем что хочется иметь "алгоритм управления приточно-вытяжной вентустановкой с рекуператором, водяным подогревом и непосредственным охлаждением" переносимым и не привязанным к процессору. - Скрипач(19.10.2014 20:59 - 21:02)
- Насчёт переносимости люто плюсую. Protothreads работают везде, где работает Си. А вот эти ваши оси ещё не на всяком проце запустить можно. - SciFi(19.10.2014 21:05)
- да ладно, тот же фриртос запустили почти на всём. остальное портируется по образу и подобию. - Mahagam(19.10.2014 21:09)
- И stm8? - SciFi(19.10.2014 21:13)
- думаю, что со временем большинство ембеддеров переквалифицируется в "чистапрограммистов" для работы под какой-нить ставшей стандартом, очередной uCOS или т.п., а оставшиеся будут портировать эту ось на всякие " STM8" ну или писать под какую-нить Adept(389 знак., 19.10.2014 21:21)
- TRON - Скрипач(19.10.2014 23:15, ссылка)
- "Телевидение. Будет одно сплошное телевидение." © Предсказамус - SciFi(19.10.2014 23:00)
- бабло решает всё. конкурент сделает задачу без АРМа и без оси. и все эти "чистапраграмисты" будут на подсосе. - Mahagam(19.10.2014 21:26)
- ну глянь по ссылке. вы, извращенцы, такие непредсказуемые )))) - Mahagam(19.10.2014 21:19, ссылка)
- Испугался - думал может на меги >64К есть официальные порты? Может, здря мозги сушил? Нее... Нема. - Олдфаг(19.10.2014 21:26, )
- думаю, что со временем большинство ембеддеров переквалифицируется в "чистапрограммистов" для работы под какой-нить ставшей стандартом, очередной uCOS или т.п., а оставшиеся будут портировать эту ось на всякие " STM8" ну или писать под какую-нить Adept(389 знак., 19.10.2014 21:21)
- И stm8? - SciFi(19.10.2014 21:13)
- да ладно, тот же фриртос запустили почти на всём. остальное портируется по образу и подобию. - Mahagam(19.10.2014 21:09)
- Насчёт переносимости люто плюсую. Protothreads работают везде, где работает Си. А вот эти ваши оси ещё не на всяком проце запустить можно. - SciFi(19.10.2014 21:05)
- А почему из головы плохо? Предлагаете писать говнокод сразу из жо*ы? - Олдфаг(20.10.2014 09:22, )
- Чо-то Вы не то говорите. Прототреадовский свич, который красной нитью проходит через каждую ноду и есть переход от одного состояния к другому. Единственное неудобство протопотоков, на мой взгляд, это необходимость держать static переменные, Mebius(39 знак., 19.10.2014 19:33)
- А свои свищи в потоках можно применять? - Олдфаг(19.10.2014 19:51, )
- if-ы чем не устроили ? - zeleny(19.10.2014 23:01)
- Да, конечно. Переключите на сохранение контекста в метках или сделайте на лонгджампах. - Скрипач(19.10.2014 20:08 - 21:01)
- Да ну? С PT-вызовами? Раньше вроде нельзя было. Из-за этого фтопку ипосланы... Или некошерные переходы на метки имеете в виду? - Олдфаг(19.10.2014 20:17, )
- Прям так сразу фтопку из-за запрета на switch? А использовать вместо этого if религия не позволяет? - SciFi(19.10.2014 20:49)
- Хотя, помнится, недпаняя портация ФриРтос на м128х выявила ненадежности и у нее (непослана фтопку потому как условие заказчика). Кому верить бедному крестьянину?)) - Олдфаг(19.10.2014 20:48, )
- Да ну? С PT-вызовами? Раньше вроде нельзя было. Из-за этого фтопку ипосланы... Или некошерные переходы на метки имеете в виду? - Олдфаг(19.10.2014 20:17, )
- в принципе не запрещено, но там весь тред уже в одном свиче, потому break может быть понят не так как хотелось бы автору, т.е. эффекты могут быть фееричными. - Vit(19.10.2014 20:10, ссылка)
- Переключи режим сохранения контекста на символьные метки или сделай на лонгджампе и вперед. - Скрипач(19.10.2014 20:11)
- У меня несколько другие методы. pure Protothreads от Dunkels не использую вааще - Vit(19.10.2014 20:27 - 20:30)
- Переключи режим сохранения контекста на символьные метки или сделай на лонгджампе и вперед. - Скрипач(19.10.2014 20:11)
- В гэцэцэ можно. А вообще нельзя. - SciFi(19.10.2014 20:10)
- fk0 то говорит. Может, слишком категорично, но верно - насчет множества переходов из одного состояния и насчет неготовности "голых" прототредов к маложручести это факт. Насчет насколько сложны задачи и сколько кто когда может сделать ошибок - Vit(63 знак., 19.10.2014 19:42)
- Насчет "множества переходов из одного состояния" непонятно. *Сходу - бред. Скрипач(102 знак., 19.10.2014 20:10 - 20.10.2014 09:12)
- по upd - накатал каляки-маляки с кучей goto Vit(1104 знак., 20.10.2014 11:07 - 11:09)
- Реальная программа управления парой вентиляторов, подключенных к одному частотнику Скрипач(1329 знак., 20.10.2014 11:22)
- красота. --> - Vit(20.10.2014 11:27, ссылка)
- +1. Это просто какое-то современное искусство, простите за выражение. - SciFi(20.10.2014 11:33)
- Отвергая предлагай. Ключевое: 1) наличие методологии 2) читабельно 3) переносимо. - Скрипач(20.10.2014 11:35 - 11:45)
- Я лишь констатирую, что "голые" Protothreads несовершенны - Vit(20.10.2014 11:45, ссылка)
- Тогда, извини, тебе на майдан. Ибо они лучшее из того что есть. И в этом смысле, они безусловно хуже того, чего в природе нет :) - Скрипач(20.10.2014 11:48)
- У нас оно обработано напильником до неузнаваемости, ну и по ходу добавлены некоторые примитивы, которые более-менее удобны при кодировании подобных задач - Vit(20.10.2014 12:13)
- Я тоже пробовал изменить систему примитивов. С одной стороны, читабельность возрастает, с другой - каждый раз приходится вспоминать что эти примитивы значат :) Очень нехватает возможности вставить yield вторым параметром в for :) - Скрипач(20.10.2014 12:19 - 12:21)
- У нас оно обработано напильником до неузнаваемости, ну и по ходу добавлены некоторые примитивы, которые более-менее удобны при кодировании подобных задач - Vit(20.10.2014 12:13)
- Тогда, извини, тебе на майдан. Ибо они лучшее из того что есть. И в этом смысле, они безусловно хуже того, чего в природе нет :) - Скрипач(20.10.2014 11:48)
- Да я в большей степени по поводу стиля оформления. Ну не люблю заглавные буквы (оттого и protothreads коробят) и манеру набивать в строчку как можно больше кода. Ещё не люблю не говорящие названия типа ЮСТАС261 и АЛЕКС837. - SciFi(20.10.2014 11:40)
- Названия меток == названия состояний на диаграмме состояний. Аббревиатуры КМ, FD, В1 - устоявшиеся обозначения пускателей, кнопок и частотников на схемах электриков. - Скрипач(20.10.2014 11:47 - 11:51)
- А, понятно. Это не сишный исходник, а некий псевдокод для электриков. - SciFi(20.10.2014 11:49)
- Это прикладная программа, которую можно показать электрику и он ее, с минимальными комментариями, поймет. - Скрипач(20.10.2014 11:51)
- А, понятно. Это не сишный исходник, а некий псевдокод для электриков. - SciFi(20.10.2014 11:49)
- Названия меток == названия состояний на диаграмме состояний. Аббревиатуры КМ, FD, В1 - устоявшиеся обозначения пускателей, кнопок и частотников на схемах электриков. - Скрипач(20.10.2014 11:47 - 11:51)
- Я лишь констатирую, что "голые" Protothreads несовершенны - Vit(20.10.2014 11:45, ссылка)
- Отвергая предлагай. Ключевое: 1) наличие методологии 2) читабельно 3) переносимо. - Скрипач(20.10.2014 11:35 - 11:45)
- +1. Это просто какое-то современное искусство, простите за выражение. - SciFi(20.10.2014 11:33)
- красота. --> - Vit(20.10.2014 11:27, ссылка)
- Реальная программа управления парой вентиляторов, подключенных к одному частотнику Скрипач(1329 знак., 20.10.2014 11:22)
- К сожалению, не бред. Vit(502 знак., 19.10.2014 20:23)
- Ничего подобного! У меня половина алгоритмов управления аналогичны. Именно ради них подтянул прототреды. До этого писалось на машинах состояний и дико бесила необходимость для каждой задержки новое состояние объявлять. Теперь все чотко :) - Скрипач(19.10.2014 20:57 - 20.10.2014 09:13)
- а зачем для каждой задержки новое состояние? а я не уберу чемоданчик(519 знак., 21.10.2014 18:16, )
- Задержка в чистом виде бывает нужна очень редко. Обычно это таймауты и прочие ожидания обратной связи. Их так, как вы предлагаете, не сделать. Скрипач(337 знак., 21.10.2014 18:22 - 18:26)
- а с вытесняющей будет ещё краше. - Mahagam(20.10.2014 01:23)
- И не только краше - реАльно будет чЁтко... - Apтём(20.10.2014 01:26)
- За все нужно платить. За вытесняемость - блокировками в прикладном коде. - Скрипач(20.10.2014 09:09)
- Ну запретятся прерывания на несколько микросекунд, ну и что? Такая беда... - Apтём(20.10.2014 11:21)
- Падает читабельность программы. Появляются строки, непонятные не программистам. - Скрипач(20.10.2014 11:28)
- Зачем программу не программистам смотреть-то? Непонятно... Apтём(129 знак., 20.10.2014 11:42)
- Увы, я занимаюсь не сферическими лошадьми и алгоритмы управления нужно согласовывать со смежниками. Скрипач(102 знак., 20.10.2014 11:54)
- Кстати, умные люди говорят, что хорошо, когда язык программирования заточен под область применения. То есть напрашивается простенкий язык "для электриков" типа васика. Пост по ссылке из этой оперы? --> - SciFi(20.10.2014 12:02, ссылка)
- Языки для электриков уже давно придуманы AlexG(104 знак., 20.10.2014 20:29)
- Да, именно. - Скрипач(20.10.2014 12:07)
- Если не нужно менять программу на лету, то можно замутить простой макроязык, который будет на этапе компиляции превращаться в сишный код. - SciFi(20.10.2014 12:17, ссылка)
- Костыль не перестанет быть костылем, сколько не украшай его ленточками и фигурной резьбой. - Скрипач(20.10.2014 12:31)
- Я не настаиваю, моё дело - предложить :-) - SciFi(20.10.2014 12:33)
- Тогда уже LEX/YACC - Скрипач(20.10.2014 12:36)
- Я не настаиваю, моё дело - предложить :-) - SciFi(20.10.2014 12:33)
- Костыль не перестанет быть костылем, сколько не украшай его ленточками и фигурной резьбой. - Скрипач(20.10.2014 12:31)
- Если не нужно менять программу на лету, то можно замутить простой макроязык, который будет на этапе компиляции превращаться в сишный код. - SciFi(20.10.2014 12:17, ссылка)
- Кстати, умные люди говорят, что хорошо, когда язык программирования заточен под область применения. То есть напрашивается простенкий язык "для электриков" типа васика. Пост по ссылке из этой оперы? --> - SciFi(20.10.2014 12:02, ссылка)
- Увы, я занимаюсь не сферическими лошадьми и алгоритмы управления нужно согласовывать со смежниками. Скрипач(102 знак., 20.10.2014 11:54)
- Зачем программу не программистам смотреть-то? Непонятно... Apтём(129 знак., 20.10.2014 11:42)
- Падает читабельность программы. Появляются строки, непонятные не программистам. - Скрипач(20.10.2014 11:28)
- да какими, блеать, блокировками??? - Mahagam(20.10.2014 10:12)
- В смысле, какими? (->) - Скрипач(20.10.2014 10:13, ссылка)
- Ну запретятся прерывания на несколько микросекунд, ну и что? Такая беда... - Apтём(20.10.2014 11:21)
- За все нужно платить. За вытесняемость - блокировками в прикладном коде. - Скрипач(20.10.2014 09:09)
- И не только краше - реАльно будет чЁтко... - Apтём(20.10.2014 01:26)
- а зачем для каждой задержки новое состояние? а я не уберу чемоданчик(519 знак., 21.10.2014 18:16, )
- Вот-вот. Чиста из эстетических соображений поглядываю на RTOS. Чтобы говнокод выглядел чуть менее как говно и чуть более как код. - SciFi(19.10.2014 21:00)
- Ничего подобного! У меня половина алгоритмов управления аналогичны. Именно ради них подтянул прототреды. До этого писалось на машинах состояний и дико бесила необходимость для каждой задержки новое состояние объявлять. Теперь все чотко :) - Скрипач(19.10.2014 20:57 - 20.10.2014 09:13)
- по upd - накатал каляки-маляки с кучей goto Vit(1104 знак., 20.10.2014 11:07 - 11:09)
- Насчет "множества переходов из одного состояния" непонятно. *Сходу - бред. Скрипач(102 знак., 19.10.2014 20:10 - 20.10.2014 09:12)
- А свои свищи в потоках можно применять? - Олдфаг(19.10.2014 19:51, )
- Предлагаю порассуждать. Скрипач(724 знак., 19.10.2014 18:18 - 18:53)
- Ну вот куда вас понесло? Ещё не ясно нужна ли ОС, а вы уже за их идеологию воюете. symbions(364 знак., 19.10.2014 20:47)
- считаем дальше, вытесняющая ось ценой получилась 175 тактов за квант. у меня квант в 5ms, итого ~35тыщ тактов в секунду, при тактовой в 70MHz затраты на управление процессами получаются всего 0.05% (!) зато многозадачка получается действительно Mahagam(110 знак., 19.10.2014 18:38)
- приоритеты вредны, а книги лябросса нужно сжигать - Vit(19.10.2014 18:52)
- Здрааасьте, скажешь тоже, одни задачи более критичны ко времени реакции системы, чем другие, для этого и нужны приоритеты. Причём более критичные - не всегда значит более важные, например тормоза и дрожание средств индикации нервирует потребителей. - =AlexD=(20.10.2014 07:31)
- Что за книги ляброса? И за что их сжечь? - symbions(19.10.2014 20:42)
- Как за что? За одно место. Хотя почему за одно... - Apтём(19.10.2014 23:38)
- автор uCOS+ накатал кучу книг для продажи своего детища, ну и множество RTOS-поделок есть реинкарнация его идей. Нахрена-то носятся с этими приоритетами и разделяемыми ресурсами как с фетишем, вместо того, чтобы научиться реализовывать системное Vit(132 знак., 19.10.2014 20:55)
- ну не скажите, если на одной линии сидит несколько разных датчиков, которые нужно опрашивать из разных логических частей программы - то мютексы безо всяких колупаний просто дают то что нужно. - Mahagam(19.10.2014 21:13)
- пишется спулер, обслуживающий очередь(и) заданий на опрос, а не размазывается по всей программе (логическим частям), и никаких мьютексов не нужно. - Vit(19.10.2014 21:20)
- А драйвер последовательного канала связи не решает ту же проблему? - Скрипач(19.10.2014 21:17)
- а если удалённое устройство задумчивое? или сидеть в драйвере и ждать ответа, тормозя всю систему, или навесить многозадачку, и тогда один мютекс решает все проблемы. - Mahagam(19.10.2014 21:23)
- Сидеть в драйвере НЕ тормозя систему. - Скрипач(19.10.2014 21:28)
- это как? а если другая задача вызовет драйвер ещё раз? - Mahagam(19.10.2014 21:31)
- Корпоративная мультизадачность, она точно такая же как и вытесняющая, только невытесняющая :) - Скрипач(19.10.2014 21:41 - 21:44)
- то есть степеней свободы в софте меньше. - Mahagam(19.10.2014 21:55)
- На уровне концепции, разница только в отсутствии вытеснения. Т.е. отсутствии "жесткого реалтайма". - Скрипач(19.10.2014 21:59)
- опять эти унылые штампы от лябросса:)... - Vit(19.10.2014 21:58)
- то есть степеней свободы в софте меньше. - Mahagam(19.10.2014 21:55)
- Корпоративная мультизадачность, она точно такая же как и вытесняющая, только невытесняющая :) - Скрипач(19.10.2014 21:41 - 21:44)
- это как? а если другая задача вызовет драйвер ещё раз? - Mahagam(19.10.2014 21:31)
- :) опять - если многозадачность, то почему-то именно вытесняющая. - Vit(19.10.2014 21:27)
- потому что очень удобно. - Mahagam(19.10.2014 21:32)
- Сидеть в драйвере НЕ тормозя систему. - Скрипач(19.10.2014 21:28)
- а если удалённое устройство задумчивое? или сидеть в драйвере и ждать ответа, тормозя всю систему, или навесить многозадачку, и тогда один мютекс решает все проблемы. - Mahagam(19.10.2014 21:23)
- ну не скажите, если на одной линии сидит несколько разных датчиков, которые нужно опрашивать из разных логических частей программы - то мютексы безо всяких колупаний просто дают то что нужно. - Mahagam(19.10.2014 21:13)
- Именно! :) И если вам нужен жесткий реал-тайм, то вот он. Но не бесплатно. Взамен вам нужно помнить о блокировках и смириться с перерасходом памяти на стеки задач. Издержки у корпоративки меньше, не нужны блокировки, но ценой риал-тайма. - Скрипач(19.10.2014 18:49)
- приоритеты вредны, а книги лябросса нужно сжигать - Vit(19.10.2014 18:52)
- "В protothreads это просто невозможно закодировать!" - Распечатаю и... в мемориз. - Vit(19.10.2014 18:31)
- Да, protothreads это не более чем костыль. Реализация методологии в языке, который на нее не рассчитан. Та же методология в LUA или Python вполне органична. - Скрипач(19.10.2014 13:50)
- Классика подмены понятий. Скрипач(129 знак., 19.10.2014 13:42)
- Я знаю точно: невозможное - возможно! :) От переноса проверки условия из прикладной задачи в супервизор ничегошеньки не меняется. - Скрипач(19.10.2014 13:39)