-
- Всем спасибо! Многое познал. :) bnb62(141 знак., 29.04.2025 17:55, ссылка)
- ИМХО, state machine хорошо смотрится когда между состояниями много
не последовательных переходов. Но если есть множество
последовательных действий типа включили, подождали, выключили или
много циклов, тогда КА смотрится как на корове седло. - AlexBi(24.04.2025 07:53)
- Protothreads для этого и сделали. Вроде бы всё то же самое, но
смотрится уже вполне гармонично. - SciFi(24.04.2025 08:16)
- Да, прототреды должны примирить любителей тредов и КА - AlexBi(24.04.2025 10:27)
- А по мне - так наоборот. КА идеален для множества последовательных
переходов. Выношу в КА всю подобную логику работы. Nikolay_Po(632 знак., 24.04.2025 08:03)
- простите, а что в вашем понимании в этом контексте "быстро и
надёжно"? - Vit(24.04.2025 09:06)
- Из практики. Задача программисту: "Добавь эту функцию". Nikolay_Po(132 знак., 24.04.2025 09:13)
- я, извините, не понял, где надёжно? но ещё предполагал, что вы о
добавлении задач в рантайме. - Vit(24.04.2025 09:59)
- Нет, я про бизнес. Что руководителю достаточно поставить задачу и
она будет предсказуемо выполнена. В случае ОСРВ. И не так
предсказуемо, не так надёжно выполнена в случае КА. - Nikolay_Po(24.04.2025 15:48)
- Думаю, что это лёгкий мухлёж. Существует масса подходов, позволяющих писать модульно, гибко и управляемо. Под ОСРВ обычно понимают ОС с вытесняющей многозадачностью, но вот сама вытесняющая многозадачность не является основным фактором гарантированной работоспособности добавляемых участков кода (ведь необязательно новый код это отдельные задачи?) и неразваливаемости всего остального. Да, многозадачность является определённой реализацией модульности. Да, на уровне Vit(2178 знак., 26.04.2025 11:39)
- Поддерживал софт огрооооомной промустановки, есно, написанной как
КА. Я даже не знаю сколько там было автоматов, наверно не меньше
100500. Понадобилось добавить функционал, добавил, понадобилось
изменить, изменил. ЧЯДНТ? - IBAH(24.04.2025 19:12)
- Квалификация у вас не та. Слишком высокая. А нужно, чтобы студент
справился. ОСРВ снижает порог входа в сложные системы. Это и не
плохо, и не хорошо. - Nikolay_Po(24.04.2025 21:47)
- Дело не в квалификации, а в организации ПО. Вообще, топлю за языки
МЭК, на них нельзя написать кривой КА. На С/С++ при автоматном
программировании концепция должна быть такая же. - IBAH(24.04.2025 22:16)
- Лично я не представляю себе, как сделать КА на языке МЭК. А вот
коллега, который не может внедрить фичу, потому, что иначе у него
"всё развалится" - как раз умеет. Но, блин, внести доработку в его
проект - это боль. И время, и непредсказуемость результата. И да,
писать КА на Си/Си++ он умеет и делает это. Nikolay_Po(140 знак., 25.04.2025 10:18)
- Для КА на МЭК наиболее адекватный вариант специализированный язык -
SFC. Либо часто встречается расширение языка LD - "стадии", т.е.
участки программы, которые можно активировать и деактивировать. - AlexG(25.04.2025 14:45)
- Ещё была возможность писать КА в программе S7-GRAPH. Я пользовался
для программирования конвеерных линий лет 20 назад, было очень
наглядно и работало надёжно. Бoмж(1914 знак., 25.04.2025 17:05, ссылка, ссылка)
- Спасибо. - Nikolay_Po(25.04.2025 18:28)
- Ещё была возможность писать КА в программе S7-GRAPH. Я пользовался
для программирования конвеерных линий лет 20 назад, было очень
наглядно и работало надёжно. Бoмж(1914 знак., 25.04.2025 17:05, ссылка, ссылка)
- Раз в неделю пишу. Но на FBD именно КА не очень нужен, благодаря тому что всегда вычисляются все ветки программы (что несовсем правда, просто внешне выглядит так). Cкpипaч(153 знак., 25.04.2025 10:39)
- Для КА на МЭК наиболее адекватный вариант специализированный язык -
SFC. Либо часто встречается расширение языка LD - "стадии", т.е.
участки программы, которые можно активировать и деактивировать. - AlexG(25.04.2025 14:45)
- Лично я не представляю себе, как сделать КА на языке МЭК. А вот
коллега, который не может внедрить фичу, потому, что иначе у него
"всё развалится" - как раз умеет. Но, блин, внести доработку в его
проект - это боль. И время, и непредсказуемость результата. И да,
писать КА на Си/Си++ он умеет и делает это. Nikolay_Po(140 знак., 25.04.2025 10:18)
- Если у вас студенты справляются, то у меня один вопрос: где таких
студентов взять? Eddy_Em(703 знак., 24.04.2025 22:08)
- Практически дословно, всё это было сказанно в 1995-м году на одной
из пьянок одним стареньким профессором другу академику! 8) - Cкpипaч(24.04.2025 22:11)
- Другими словами, если студенты херовые, значит, препод херовый.
Нужно работать с тем, что есть. Зажечь человека своей
вовлечённостью, своим примером и своей поддержкой. Другое дело, что
студенту может оказаться это не нужно - тогда надо искать, собирать
тех, кому нужно. В этом тоже работа преподавателя. - Nikolay_Po(25.04.2025 10:20)
- Соваглобусье! Говорят, только 10% людей способны овладеть научными
методами мышления, даже на уровне средней школы. Остальные
принимают решения исходя из своего, а чаще чужого опыта тех самых
90% людей. Задача педагогики не научить обезьяну ездить на
велосипеде, а вырастить человека, не дать ему стать обезьяной. И
это нужно начинать делать с зачатия. - IBAH(25.04.2025 11:57)
- У педагогики 2 немного противоречащие друг другу задачи. С одной
стороны, вырастить работников, которые адекватно заполнят рабочие
места, для чего нужно дать им необходимые навыки. С другой стороны,
не переучить, чтобы они не начали ставить под сомнение существующий
общественный порядок. - SciFi(25.04.2025 12:03)
- Так отож! Педагогика 2.0! - IBAH(25.04.2025 12:24)
- У педагогики 2 немного противоречащие друг другу задачи. С одной
стороны, вырастить работников, которые адекватно заполнят рабочие
места, для чего нужно дать им необходимые навыки. С другой стороны,
не переучить, чтобы они не начали ставить под сомнение существующий
общественный порядок. - SciFi(25.04.2025 12:03)
- Это не только "другими словами", но и "мысль совершенно другая", не
имеющая к моей ни малейшего отношения. - Cкpипaч(25.04.2025 10:29)
- До меня не донеслась, увы. - Nikolay_Po(25.04.2025 10:29)
- Учителям всегда кажется что ученики бестолковые. Абберация зрения. Кроме того, они
забывают что потому и достигли успеха сами, в своё время, шли в
числе первых в новую область знания. Туда где небыло учителей. - Cкpипaч(25.04.2025 10:34 - 10:45)
- Мне нравятся цитаты двухтысячелетней давности о никчёмности
молодого поколения. Не знаю, насколько достоверные, но я легко
готов поверить, что старые пердуны во все века глупы одинаково :-) - SciFi(25.04.2025 10:37)
- ...немного под другим углом: вот было поколение изобретения
транзисторов - их условыне учителя, перед ними, были поколением
ламповой техники, а ученики - поколением цифровой схемотехники.
Попытка "передать знания молодым" вполне естественно упиралась в
отсутствие интереса к устаревшим знаниям. Потому и оценки нелестные. Строго в соответствии к
освоению того чему хотели научить (а не того, что в это время только зарождалось). - Cкpипaч(25.04.2025 10:46)
- 2-4к лет назад "новых знаний" не было. Новое знание за поколение,
это середина 19 века и позжэ. А в наше время есть люди, которые
застали ланпы и щас небрежно тычут в Ютуп на 5-гиговых процах. - mse homjak(25.04.2025 11:09)
- Недавно где-то прочел. Удивительное время, одновременно живут люди
еще не заставшие "отправить факс" и уже не заставшие "отправить
факс". - LightElf(25.04.2025 12:32)
- Жванецкий вайб. - SciFi(25.04.2025 12:35)
- Недавно где-то прочел. Удивительное время, одновременно живут люди
еще не заставшие "отправить факс" и уже не заставшие "отправить
факс". - LightElf(25.04.2025 12:32)
- 2-4к лет назад "новых знаний" не было. Новое знание за поколение,
это середина 19 века и позжэ. А в наше время есть люди, которые
застали ланпы и щас небрежно тычут в Ютуп на 5-гиговых процах. - mse homjak(25.04.2025 11:09)
- ...немного под другим углом: вот было поколение изобретения
транзисторов - их условыне учителя, перед ними, были поколением
ламповой техники, а ученики - поколением цифровой схемотехники.
Попытка "передать знания молодым" вполне естественно упиралась в
отсутствие интереса к устаревшим знаниям. Потому и оценки нелестные. Строго в соответствии к
освоению того чему хотели научить (а не того, что в это время только зарождалось). - Cкpипaч(25.04.2025 10:46)
- Мне нравятся цитаты двухтысячелетней давности о никчёмности
молодого поколения. Не знаю, насколько достоверные, но я легко
готов поверить, что старые пердуны во все века глупы одинаково :-) - SciFi(25.04.2025 10:37)
- Учителям всегда кажется что ученики бестолковые. Абберация зрения. Кроме того, они
забывают что потому и достигли успеха сами, в своё время, шли в
числе первых в новую область знания. Туда где небыло учителей. - Cкpипaч(25.04.2025 10:34 - 10:45)
- До меня не донеслась, увы. - Nikolay_Po(25.04.2025 10:29)
- Соваглобусье! Говорят, только 10% людей способны овладеть научными
методами мышления, даже на уровне средней школы. Остальные
принимают решения исходя из своего, а чаще чужого опыта тех самых
90% людей. Задача педагогики не научить обезьяну ездить на
велосипеде, а вырастить человека, не дать ему стать обезьяной. И
это нужно начинать делать с зачатия. - IBAH(25.04.2025 11:57)
- Другими словами, если студенты херовые, значит, препод херовый.
Нужно работать с тем, что есть. Зажечь человека своей
вовлечённостью, своим примером и своей поддержкой. Другое дело, что
студенту может оказаться это не нужно - тогда надо искать, собирать
тех, кому нужно. В этом тоже работа преподавателя. - Nikolay_Po(25.04.2025 10:20)
- Практически дословно, всё это было сказанно в 1995-м году на одной
из пьянок одним стареньким профессором другу академику! 8) - Cкpипaч(24.04.2025 22:11)
- Дело не в квалификации, а в организации ПО. Вообще, топлю за языки
МЭК, на них нельзя написать кривой КА. На С/С++ при автоматном
программировании концепция должна быть такая же. - IBAH(24.04.2025 22:16)
- Квалификация у вас не та. Слишком высокая. А нужно, чтобы студент
справился. ОСРВ снижает порог входа в сложные системы. Это и не
плохо, и не хорошо. - Nikolay_Po(24.04.2025 21:47)
- Нет, я про бизнес. Что руководителю достаточно поставить задачу и
она будет предсказуемо выполнена. В случае ОСРВ. И не так
предсказуемо, не так надёжно выполнена в случае КА. - Nikolay_Po(24.04.2025 15:48)
- Оно отчасти правда. Но если есть данные что проц условно 50%
времени лежит в sleep, то у обоих проблем нет. Cкpипaч(470 знак., 24.04.2025 09:37)
- Даже если проц нагружен на 100%, это не значит что он не может
сделать что-то ещё. Может, просто некоторые функции начнут
исполняться медленнее. В концепции РТОС это проще пареной репы -
самая низкоприоритетная задача будет получать меньше процессорного
времени. В нормальном дизайне ничего не поломается, но может
увеличиться время некоторых действий. Думаю это вполне можно
считать эффектом "накинуть 10% от себя". - =AlexD=(25.04.2025 10:37)
- Я - пробовал. Обычно где-то в неожиданном месте начинает глючить. Cкpипaч(12 знак., 25.04.2025 10:48)
- Охотно верю. Слишком много кода в прерываниях - это вообще загон
себя в критичные условия. - =AlexD=(25.04.2025 10:54)
- Мы о RTOS говорили. Нет? О том что там "все просто немного
замедлится". На практике будет совершенно иначе, полезут странные
"артефакты". Cкpипaч(25 знак., 25.04.2025 10:57)
- То что вы пишете относится к дизайну, а не к ртос. Очереди событий,
счётные семафоры и инверсия приоритетов как правило позволяют
избегать множества проблем. - =AlexD=(25.04.2025 14:01)
- ...оставшихся проблем (после устранения "множества") обычно хватает
на пожизненное трудоустройства пары
говнокодеров. У меня несколько примеров, когда перенос разумного кол-ва кода (90%) из RTOS в корпоративку, существенно поправляло дела в уже почти списанных проектах. - Cкpипaч(25.04.2025 14:13)- Есть подозрение, что в ходе переноса, линейный код на циклах был переписан на шаги конечного автомата, в ходе чего просто выловили блох. КА это вообще наилучшее архитектурное решение в программировании. Для большинства применений в любом окружении. - =AlexD=(25.04.2025 14:25)
- "из RTOS в корпоративку" - возможно стоит понимать как "из
вытесняющей RTOS в кооперативную RTOS"? - mr-x(25.04.2025 14:18)
- Да. Именно так. Прошу прощения за жаргон. Cкpипaч(548 знак., 25.04.2025 14:38)
- ...оставшихся проблем (после устранения "множества") обычно хватает
на пожизненное трудоустройства пары
- То что вы пишете относится к дизайну, а не к ртос. Очереди событий,
счётные семафоры и инверсия приоритетов как правило позволяют
избегать множества проблем. - =AlexD=(25.04.2025 14:01)
- Мы о RTOS говорили. Нет? О том что там "все просто немного
замедлится". На практике будет совершенно иначе, полезут странные
"артефакты". Cкpипaч(25 знак., 25.04.2025 10:57)
- Охотно верю. Слишком много кода в прерываниях - это вообще загон
себя в критичные условия. - =AlexD=(25.04.2025 10:54)
- Я - пробовал. Обычно где-то в неожиданном месте начинает глючить. Cкpипaч(12 знак., 25.04.2025 10:48)
- Даже если проц нагружен на 100%, это не значит что он не может
сделать что-то ещё. Может, просто некоторые функции начнут
исполняться медленнее. В концепции РТОС это проще пареной репы -
самая низкоприоритетная задача будет получать меньше процессорного
времени. В нормальном дизайне ничего не поломается, но может
увеличиться время некоторых действий. Думаю это вполне можно
считать эффектом "накинуть 10% от себя". - =AlexD=(25.04.2025 10:37)
- я, извините, не понял, где надёжно? но ещё предполагал, что вы о
добавлении задач в рантайме. - Vit(24.04.2025 09:59)
- Из практики. Задача программисту: "Добавь эту функцию". Nikolay_Po(132 знак., 24.04.2025 09:13)
- простите, а что в вашем понимании в этом контексте "быстро и
надёжно"? - Vit(24.04.2025 09:06)
- Protothreads для этого и сделали. Вроде бы всё то же самое, но
смотрится уже вполне гармонично. - SciFi(24.04.2025 08:16)
- Потоковое программирование нужно тем, кто не умеет программировать
конечные автоматы (с) Кокс IBAH(1 знак., 23.04.2025 12:33, ссылка)
- И наоборот. - AПM(23.04.2025 17:06)
- Дурацкое противопоставление. Если у вас в программе только один КА,
то он уютно расположится в биглупе. А если множество малозависимых,
то система становится гораздо управляемей, если каждый в отдельном
треде. - =AlexD=(23.04.2025 15:24)
- Стесняюсь спросить, а почему в биглупе не могут уютно расположится
100500 конечных автоматов? Не ужели не хватит места? - IBAH(23.04.2025 16:14)
- Расположатся, но очень неуютно. Одни должны срабатывать чаще и
вперёд других, задолбаетесь баллансировать систему и в конечном
итоге весь критичный код у вас окажется в прерывании, а КА
порванным на куски. - =AlexD=(24.04.2025 12:37)
- Это достаточно экзотический случай. Обычно, полный проход Биг-луп
сильно сменьше допустимой задержки для каждого КА. - Cкpипaч(24.04.2025 13:07)
- Это если весь код чувствительный к задержкам уже сидит в
прерываниях. - =AlexD=(24.04.2025 13:12)
- Весь код, чувствительный к значимым задержкам, ДОЛЖЕН сидеть в прерываниях. Cкpипaч(169 знак., 24.04.2025 13:21)
- Он может там сидеть если своим количеством не мешает другим прерываниям. Вы
просто теряете в гибкости и кпд процессорного ресурса и только. - =AlexD=(25.04.2025 10:42)
- Если прерывания начинают душить друг друга, то, либо, в
консерватории чота не так, либо, проц выбран неверно. - mse homjak(25.04.2025 11:12)
- Либо у вас USB библиотека в прерывании. - =AlexD=(25.04.2025 13:57)
- Это консерватория. - mse homjak(25.04.2025 21:04)
- Либо у вас USB библиотека в прерывании. - =AlexD=(25.04.2025 13:57)
- Если прерывания начинают душить друг друга, то, либо, в
консерватории чота не так, либо, проц выбран неверно. - mse homjak(25.04.2025 11:12)
- Но исполняться в биг-лупе, в обработчике прерывания, в т.н. коллбэк функции. (в HAL ARM - статус - слабая, т.е. заменяется под тем же именем юзерским кодом). Однако, если метод сопряжен с технологическими тайм-аутами на дурацких циклах, то и тут ай-яяй близок - требуется контролировать вершину отведённого стека. А уж в ОСРВ, как это важно при интерференции событийности... Наверное поэтому опытые (избитые) ымбеддеры непременно закладывают в проект сразу "толстый камень". :) - bnb62(24.04.2025 15:27)
- Он может там сидеть если своим количеством не мешает другим прерываниям. Вы
просто теряете в гибкости и кпд процессорного ресурса и только. - =AlexD=(25.04.2025 10:42)
- Весь код, чувствительный к значимым задержкам, ДОЛЖЕН сидеть в прерываниях. Cкpипaч(169 знак., 24.04.2025 13:21)
- Это если весь код чувствительный к задержкам уже сидит в
прерываниях. - =AlexD=(24.04.2025 13:12)
- Это достаточно экзотический случай. Обычно, полный проход Биг-луп
сильно сменьше допустимой задержки для каждого КА. - Cкpипaч(24.04.2025 13:07)
- Если в биглупе только один КА, то задержки и циклы можно делать не
выходя из функции КА, иначе для каждой задержки или цикла ожидания
придётся выделять отдельное состояние, состояний станет очень
много, потеряется возможность делать задержки в подпрограммах и т.
п. - AlexBi(24.04.2025 08:01)
- Ничего не потеряется. Изначально проектируй все задержки во всех КА
как отдельные состояния. И всё будет стройно и железно
работоспособно. Если требуемые задержки короче главного цикла,
используй прерывания таймера. - Nikolay_Po(24.04.2025 08:07)
- Создать геморрой и героически его преодолеть! - =AlexD=(24.04.2025 12:38)
- Ничего не потеряется. Изначально проектируй все задержки во всех КА
как отдельные состояния. И всё будет стройно и железно
работоспособно. Если требуемые задержки короче главного цикла,
используй прерывания таймера. - Nikolay_Po(24.04.2025 08:07)
- УМВР. Искренне не понимаю любителей ртосей всяких: я уже прилично
всякого разного под МК написал, и ни разу не было нужды в RTOS! - Eddy_Em(23.04.2025 19:01)
- Много чего можно написать без RTOS, может даже почти все. Только
практика показывает что тупой линейный код пишется быстрее и с
гораздо меньшим количеством ошибок по сравнению с КА. И
отлаживается быстрее. Поэтому если важен time-to-market или задача
объемная RTOS рулит. - 3m(24.04.2025 11:35)
- Именно! Отсюда и требования заказчика ТС. - Nikolay_Po(24.04.2025 11:57)
- Бывают случаи. Допустим использовать сложные библиотеки вроде
изернета, юсб, файловой системы. Когда либа под ртос сварганена и
лень разбираться, как ее можно без нее использовать. Т.е. чисто
инструмент. Как кому-то по душе куб, кому-то gcc, кому-то кейл с
яром. Я лично, допустим, ковырял помню плату с атмеловским самом.
Можно было штудировать мануалы, но я предпочел пример с портом
фриртоса подправить под свои нужды, сделать что нужно и забыть. - vesago(23.04.2025 20:45)
- Для ethernet у меня либо полноценный комп, либо одноплатник. USB я
свой написал, там нафиг эта ртось не нужна. ФС — вообще дичь для
микроконтроллера на мой взгляд. - Eddy_Em(23.04.2025 21:33)
- Little FS с вами не согласна. - 3m(24.04.2025 12:03)
- Кстати, да: знаю про такую. Даже форк себе на гитхабе завел, чтобы не забыть. Но пока что не было нужды. Eddy_Em(334 знак., 24.04.2025 17:33)
- Little FS с вами не согласна. - 3m(24.04.2025 12:03)
- Мне в общем плевать, какой инструмент использовать. И на платформу
плевать. Главное - быстро и с минимальными усилиями сделать задачу. - vesago(23.04.2025 20:49)
- Друзья, спорить не буду. Я не говорю, что сторонник халтуры. Ну чего изобретать велосипед. Я понимаю - у самурая нет цели, но есть путь :) - vesago(24.04.2025 07:43)
- Есть у меня такой в коллективе. Когда поступает новая вводная,
ходит туда-сюда с задумчивым видом. Говорит: "Вот теперь думаю, как
поправить код, чтобы остальное не сломалось". Потому, что идёт по
пути наименьшего сопротивления и плохо продумывает архитектуру и
варианты использования. - Nikolay_Po(23.04.2025 22:31)
- Если изначально было поставлено определенное ТЗ и новые вводные
меняют это ТЗ полностью ваш "такой в коллективе" правильно делает.
Часто "всего лишь добавить функцию" влечет полную переработку всего
ПО. Рабовладельцам этого не понять. - 3m(24.04.2025 12:08)
- Вот. А мудрые программисты приспосабливаются. И удовлетворяют
бизнес, используя RTOS. А те, кто "правильно делают" - сосут лапу. - Nikolay_Po(24.04.2025 12:28)
- Да ни хрена подобного: надергал кусков кода из пердыдущих
прожэктов, что-то переконфигурировал под конкретную железку -
вуаля! Eddy_Em(1591 знак., 24.04.2025 17:42, ссылка)
- Почему-то взволновало прочтение. Образовалось лишь ваше "резюме", дорогуша. Займитесь наконец исполнением должностных обязанностей и строго назначенных! Честно здесь: тревожит судьба достояния совеццкой астрофизики, всё же шестиметрового зеркала, которое довезли из ЛОМО! убирая провода и трассы... Но. - bnb62(24.04.2025 18:41)
- Да ни хрена подобного: надергал кусков кода из пердыдущих
прожэктов, что-то переконфигурировал под конкретную железку -
вуаля! Eddy_Em(1591 знак., 24.04.2025 17:42, ссылка)
- Вот. А мудрые программисты приспосабливаются. И удовлетворяют
бизнес, используя RTOS. А те, кто "правильно делают" - сосут лапу. - Nikolay_Po(24.04.2025 12:28)
- Если изначально было поставлено определенное ТЗ и новые вводные
меняют это ТЗ полностью ваш "такой в коллективе" правильно делает.
Часто "всего лишь добавить функцию" влечет полную переработку всего
ПО. Рабовладельцам этого не понять. - 3m(24.04.2025 12:08)
- Какой-то абдуринский подход… Одноразовый. - Eddy_Em(23.04.2025 21:34)
- Для ethernet у меня либо полноценный комп, либо одноплатник. USB я
свой написал, там нафиг эта ртось не нужна. ФС — вообще дичь для
микроконтроллера на мой взгляд. - Eddy_Em(23.04.2025 21:33)
- Много чего можно написать без RTOS, может даже почти все. Только
практика показывает что тупой линейный код пишется быстрее и с
гораздо меньшим количеством ошибок по сравнению с КА. И
отлаживается быстрее. Поэтому если важен time-to-market или задача
объемная RTOS рулит. - 3m(24.04.2025 11:35)
- Расположатся, но очень неуютно. Одни должны срабатывать чаще и
вперёд других, задолбаетесь баллансировать систему и в конечном
итоге весь критичный код у вас окажется в прерывании, а КА
порванным на куски. - =AlexD=(24.04.2025 12:37)
- Стесняюсь спросить, а почему в биглупе не могут уютно расположится
100500 конечных автоматов? Не ужели не хватит места? - IBAH(23.04.2025 16:14)
- Хз я сам не любитель RTOS из-за гемора с синхронизацией. По совету
местных спецов приобщился к протопотокам. Полюбил я их зело и все
тяжкие многозадачные вопросы ими закрываю. Хотя, конечно,
вытесняющая система более по феншую. - vesago(22.04.2025 21:24)
- То, что вы называете "по феншую", звучит как "догма". - SciFi(22.04.2025 21:37)
- трактование "реального времени" в плане области определения на временной оси часто помогает избавиться от иллюзий - Vit(22.04.2025 19:29)
- Ранее, когда автомат сильно усложнялся, разбивал его на 2..3 по
исполняемым функциям в одном вечном цикле, обмен данными -
регистрами. Задачи реального времени в прерываниях работают. - Visitor(22.04.2025 18:00)
- Вот и я о коллбэках прерываний от событий. Ведь гораздо более
быстродействующий алгоритм получается нежели шедулер 1 mS? Пусть
себе крутится в цикле с тактовой ядра 200 МГц. :) - bnb62(22.04.2025 18:19)
- У вас каша в голове. В большинстве ртос системный тик для
таймаутов, а не для планировщика. Высокоприоритетная задача, к
примеру, может отвлекать процессор на 123мкс каждые примерно
2345мкс по мере появления событий которые её будят. - =AlexD=(22.04.2025 20:56)
- Замените ваши приведённые тайминги на наносекундные - с чем приходится работать при реальных требуемых автоматах. Но и так же (не)интересен путь отведения времени 1 к 20 в вашем примере. Хотя может требоваться и под сотню асинхронных трэдов... Как упреждать переполнение стека? "Сяжу - гляжу" на четырёхъядерный микроконтроллер Инфинеон TC387... сцуки, ему аже 16 лет... ("Течёт-течёт Волга, а мне шишнацать лет") - bnb62(24.04.2025 16:18)
- А объясните темному, как планировщик узнает о том что событие
произошло? Я чего-то не понимаю. Вызвать поток может только
планировщик, а планировщик получает управление раз в
миллисекунду... - IBAH(23.04.2025 16:09)
- Планировщик узнаёт об этом из прерывания специальными функциями и
при выходе из прерывания - перепланирует задачи. Немедленно. Не
дожидаясь системного тика. =AlexD=(136 знак., 24.04.2025 12:52)
- Вот и спалился Автор светофоров. :) - bnb62(24.04.2025 18:57)
- идиот - =AlexD=(24.04.2025 22:18)
- Пьян он просто... Хронически. - Nikolay_Po(25.04.2025 10:20)
- идиот - =AlexD=(24.04.2025 22:18)
- Вот и спалился Автор светофоров. :) - bnb62(24.04.2025 18:57)
- В частности для FreeRTOS при установленном "#define configUSE_PREEMPTION 1" она становится вытесняющей и планировщик(-у) вызывается/ему отдаётся управление: Nikolaj(705 знак., 24.04.2025 05:36)
- Не, по идее, планировщик должэн заводить на себя все прерывания и
контролировать все "алярм!алярм!", в т.ч. и сустик, с передачей
машинного времени кому попало. - mse homjak(23.04.2025 16:55)
- Планировщик "работает" со списком задач по которому он, в общем случае, запускает (поочерёдно и поприоритетно :) ) готовые к выполнению и останавливает те которые не требуют процессорного времени. "Внеочередное" переключение задач выполняется: Nikolaj(600 знак., 24.04.2025 05:38)
- Планировщик сам код писать будет? То есть, надо завести все нужные
прерывания в планировщик, чтобы он передал управление потоку. А
сразу по прерыванию передать управление потоку видать религия не
позволяет? - IBAH(23.04.2025 17:08)
- Бред какой то. В прерывании ты сам дёргаешь к примеру семафор когда нужно, планировщик взводит у себя флаг и включает софтовое прерывание. Как только ты вышел из всех вложенных преоываний тут и опа, срабатывает софтовое прерывание, в котором и сидит код планировщика. - =AlexD=(24.04.2025 13:01)
- Что значит "передал управление потоку"? Как это сделать по
прерыванию минуя планировщик? - AlexBi(24.04.2025 08:24)
- Direct to task notification если надо быстро - 3m(24.04.2025 11:47)
- практически, в случае arm, это обычно означает: в обработчике некоего прерывания выставить pendsv, по выходу из этого прерывания управление передаётся обработчику pendsv, который, внезапно, и есть планировщик. - beefdeadbeef(24.04.2025 10:41)
- А нахрен тогда планировщик? А так, все при деле. - mse homjak(23.04.2025 18:03)
- Так отож! - IBAH(23.04.2025 18:11)
- Планировщик узнаёт об этом из прерывания специальными функциями и
при выходе из прерывания - перепланирует задачи. Немедленно. Не
дожидаясь системного тика. =AlexD=(136 знак., 24.04.2025 12:52)
- Почему бы нет... На всякий случай пин в начале петли инвертировать, худшее время измерить. - Visitor(22.04.2025 19:36)
- У вас каша в голове. В большинстве ртос системный тик для
таймаутов, а не для планировщика. Высокоприоритетная задача, к
примеру, может отвлекать процессор на 123мкс каждые примерно
2345мкс по мере появления событий которые её будят. - =AlexD=(22.04.2025 20:56)
- Вот и я о коллбэках прерываний от событий. Ведь гораздо более
быстродействующий алгоритм получается нежели шедулер 1 mS? Пусть
себе крутится в цикле с тактовой ядра 200 МГц. :) - bnb62(22.04.2025 18:19)
- А нахер это нужно? В какой ИБМ ПЦ, смысл прямой, там криворукий
программер или юзер можэт чо-нить запустить левое, но система
должна жить(но не всегда получается, да). А законченное
ымбеддедское устройство, у которого отвалилась часть функцианала,
становится неработоспособным и едет на ремонт или в мусорку. Ну и
писать программу с перспективой какого дидлока, тожэ такое себе... - mse homjak(22.04.2025 17:10)
- Ну, так-то да, "хрен и редька". Но мне запретили применять RTOS без
какой-либо аргументации и обоснований ТЗ. Вот и пытаюсь
реабилитировать заказчика. :) - bnb62(22.04.2025 18:05)
- КМК, кроме случаев с микрожручестью технических противопоказаний
против вытесняющей RTOS не знаю. Для меня минусом большинства
классических мелких RTOS является парадигма разноприоритетности
задач, бесит огульное использование malloc-ов для назначения
стеков, ну и при использовании RTOS (по негодным учебникам) -
рожания/киляния тасков там, где нужны правильные сервисы,
аналогично - использование разделяемых ресурсов (ну и обилия
сопутствующих примитивов синхронизации) Vit(206 знак., 22.04.2025 20:14, ссылка)
- Применение необслуживаемого, непроверяемого и нетестируемого
стороннего кода не напрягает? Может и так быть. VVB(2 знак., 23.04.2025 13:11, ссылка, ссылка)
- Напрягает. Аж страшно жЫть. Но часто чужие ошибки это противовес к
"своё не пахнет"(С) :) Линуксоиды при этом говорят - не нравится -
можешь сам поправить, а вот те, которые виндузятники, - жрут что
дают:)) - Vit(23.04.2025 14:41)
- Определяется применением: для спутника, для авиации, для авто, для
медицины (мониторинг / диагностика / замена жизненных функций), для
АЭС, для ракеты-носителя Ариан-5. VVB(819 знак., 23.04.2025 15:06, ссылка, ссылка)
- Вааще-то функциональная безопасность уже давненько окучивается. В последнее время начали сильно
накидывать тематикой сертификации. По теме очень многое в жутчайшем
информационном мусоре и лоббизме. Напугают (как вы:)) падением
Ариана, и требуют бамажку. Без сертифицированной RTOS, кстати,
сертифицировать фирмварю сильно непросто:) Доставляет оценка
вероятности случая. Особенно в привязке к сохранности человека. Vit(1 знак., 24.04.2025 07:44, ссылка)
- Разве я пугаю? Я просто рассуждаю логически. VVB(591 знак., 24.04.2025 08:19)
- "любой отказ в любой момент времени" - плохие слова, скорее относятся к яркому противопоставлению тайм-ту-маркет медленному и размереннному ногопинанию. умения же разработчика и его запросы не относятся к "надёжнее и быстрее", а разве что только к быстрее. более-менее крупный проект требует модульности и распределния работ, поэтому выбор инструментария, архитектур и технологий, конечно, к сожалению, должен учитывать степень некомпетентностей, но это не должно быть Vit(269 знак., 24.04.2025 09:50)
- Разве я пугаю? Я просто рассуждаю логически. VVB(591 знак., 24.04.2025 08:19)
- Вааще-то функциональная безопасность уже давненько окучивается. В последнее время начали сильно
накидывать тематикой сертификации. По теме очень многое в жутчайшем
информационном мусоре и лоббизме. Напугают (как вы:)) падением
Ариана, и требуют бамажку. Без сертифицированной RTOS, кстати,
сертифицировать фирмварю сильно непросто:) Доставляет оценка
вероятности случая. Особенно в привязке к сохранности человека. Vit(1 знак., 24.04.2025 07:44, ссылка)
- Определяется применением: для спутника, для авиации, для авто, для
медицины (мониторинг / диагностика / замена жизненных функций), для
АЭС, для ракеты-носителя Ариан-5. VVB(819 знак., 23.04.2025 15:06, ссылка, ссылка)
- Напрягает. Аж страшно жЫть. Но часто чужие ошибки это противовес к
"своё не пахнет"(С) :) Линуксоиды при этом говорят - не нравится -
можешь сам поправить, а вот те, которые виндузятники, - жрут что
дают:)) - Vit(23.04.2025 14:41)
- Применение необслуживаемого, непроверяемого и нетестируемого
стороннего кода не напрягает? Может и так быть. VVB(2 знак., 23.04.2025 13:11, ссылка, ссылка)
- КМК, кроме случаев с микрожручестью технических противопоказаний
против вытесняющей RTOS не знаю. Для меня минусом большинства
классических мелких RTOS является парадигма разноприоритетности
задач, бесит огульное использование malloc-ов для назначения
стеков, ну и при использовании RTOS (по негодным учебникам) -
рожания/киляния тасков там, где нужны правильные сервисы,
аналогично - использование разделяемых ресурсов (ну и обилия
сопутствующих примитивов синхронизации) Vit(206 знак., 22.04.2025 20:14, ссылка)
- Ну, так-то да, "хрен и редька". Но мне запретили применять RTOS без
какой-либо аргументации и обоснований ТЗ. Вот и пытаюсь
реабилитировать заказчика. :) - bnb62(22.04.2025 18:05)