ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
954292 Топик полностью
Связанные сообщения
АвтоматыАрхитектураEvent Driven
Прототреды это биг-луп вывернутый наизнанку. Или наоборот. То же самое, что конечные автоматы им. Шалыто, switch-технология. Удо...2020-06-11
Железо нужно симулировать не на уровне битов и фронтов сигналов, а на уровне высокоуровневых операций (например, чтение-запись б...2019-11-07
Да, примерно об этом я и думаю. Что систему КА можно запускать параллельно, на пуле потоков, по выбирая готовые к запуску по мер...2019-10-22
Как запустить параллельную систему КА написано у Шалыто лет 20 тому назад. Впрочем и самому додуматься можно. Тема уже изъезженн...2019-10-22
Выскажу ещё раз: FreeRTOS сырая недоделка, смысла особого, без реализации ряда перечисленного (см. ниже) не имеет и, хуже того, ...2019-10-18
Смотря какая ОС. В основном ОС делятся по типу: бывают корпоративные ОС и любительские.2019-03-20
Когда ПО прибора запускается на обычном ПК. Для этого обычно ПО разделяется на два слоя, как минимум: платформо-независимый (бол...2018-05-23
Это какое-то твоё определение. И оно не выполнимо, т.к. твои же задачи будут конкурировать и оттягивать на себя процессор, как т...2018-05-18
Подход, если не нужно реальное вытеснение (т.е. критично время реакции), порочный: сложные системы в "больших компьютерах", наоб...2015-09-12
Да, трэш угар и содомия. Иногда абстракции через край, поэтому я имею такое мнение, что иногда и не грех в исходники прямо вписа...2013-12-29
Не совсем. Над HAL может быть ещё один слой, уже нужный для совмещения разных программных интерфейсов. Т.е. есть модуль A, котор...2013-10-25
Вот и отличненько. Удалось значит понять суть: императивный стиль программирования повсеместно вдалбливаемый в (не)окрепший мозг...2013-07-31
Топик посвящён программированию микроконтроллеров в условиях необходимости экономии электроэнергии и архитектуре ПО в целом.2011-10-24
Полезны аж 3 прослойки (ассемблеристам дальше лучше не читать):2011-10-13
Тут очень любят рассуждать о RTOS и всём таком. Но как-то массово замалчивается, что стандартная C-библиотека для неопределённог...2011-08-13
fk0, легенда (21.10.2019 22:37, просмотров: 1048) ответил Сидоргек на "сюрпризов не принесёт" - если написана без ошибок. ИМХО код каждой отдельно взятой задачи гораздо боле читаем чем нагромождения конечных автоматов, и ошибку в ём видно за километр.
Ровно наоборот. Конечные автоматы подразумевают ЯВНОЕ выделение всех возможных состояний программы (как множества состояний системы взаимосвязанных автоматов) и ЯВНОЕ определение событий ведущих к смене состояний, а так же ЯВНОЕ выделение действий производимых на переходах между событиями. Это -- формальное определение логики программы. С которым относительно легко так же работать формальными методами. Можно, например, проверить, что ожидаемая реакция на такие-то события или их последовательности -- обеспечивается логикой программы во всех случаях, что программа не может зависнуть или иным образом зайти в тупик, что определённые негативные сценарии, наоборот невозможны при любых возможных входных воздействиях. А "читаемый код" -- это нечто не формализуемое, сильно зависящее от того кем и где читаемое. Состояние такой "читаемой" программы обычно зависит от нескольких переменных и счётчика программных инструкций одновременно. Программист сам не может в итоге сказать в каком количестве состояний может находиться программа, все ли возможные события обрабатываются в любом из состояний (типично нет и это уже бесконечный источник багов), нет ли тупиковых состояний (из которых выход один, семь бед -- один резет). И хуже того, когда такая программа многозадачная и имеет ошибки в синхронизации параллельных потоков. Гонка ведёт к тому, что некоторые сценарии то выполняются, то не выполняются, то происходит вообще что-то неожиданное. Отдельной проблемой многозадачных проблем на вычислительных машинах с ограниченными ресурсами является оценка глубины стека. Где гарантия, что выделенного программистом стека хватит на все случаи? Программа под windows может упасть, вертолет -- тоже может, но мало кому такое понравится. Я видел когда на "большой" вычислительной системе (32-битной, с мегабайтами памяти) падало из-за функции qsort. Которая иногда в C-библиотеке не очень чтобы уж совершенная, и в неудачном случае съест памяти на стеке пропорционально размеру сортируемого массива. А поскольку потоков много, то на каждый дают по нескольку килобайт стека всего. И этот qsort может затеряться в дебрях невинной функции, где и не ожидаешь подвоха. И обычно говорят: мы _измерили_ глубину стека для каждой задачи (т.е. практически, путём тестового запуска). И этого хватает, до поры до времени.
[ZX]