- Железо нужно симулировать не на уровне битов и фронтов сигналов, а на уровне высокоуровневых операций (например, чтение-запись блоков данных в EEPROM делается через функцию HAL)... fk0(3835 знаков, 07.11.2019 12:59)
- Выскажу ещё раз: FreeRTOS сырая недоделка, смысла особого, без реализации ряда перечисленного (см. ниже) не имеет и, хуже того, наоборот вносит существенные ограничения для программиста. Если бы стояла задача выбрать ОС для МК, то я бы скорей fk0(12815 знаков, 18.10.2019 02:15, ссылка)
- Да, примерно об этом я и думаю. Что систему КА можно запускать параллельно, на пуле потоков, по выбирая готовые к запуску по мере наличия интересующих конкретные КА событий (это важный момент, т.к. планировщик избавляет от важной проблемы Big fk0(3286 знаков, 22.10.2019 11:16)
- Ровно наоборот. Конечные автоматы подразумевают ЯВНОЕ выделение всех возможных состояний программы (как множества состояний системы взаимосвязанных автоматов) и ЯВНОЕ определение событий ведущих к смене состояний, а так же ЯВНОЕ выделение действий fk0(2071 знаков, 21.10.2019 22:37)
- Когда ПО прибора запускается на обычном ПК. Для этого обычно ПО разделяется на два слоя, как минимум: платформо-независимый (большая часть, условно 90%) и уровнь абстракции (HAL, 10%). Последний отдельно реализуется для МК и для ПК (где fk0(1984 знаков, 23.05.2018 10:19)
- Подход, если не нужно реальное вытеснение (т.е. критично время реакции), порочный: сложные системы в "больших компьютерах", наоборот, стараются сделать однопоточными и событийно-управляемыми. Иначе сложность синхронизации параллельных пороков fk0(1890 знаков, 12.09.2015 13:33, ссылка)
- Да, трэш угар и содомия. Иногда абстракции через край, поэтому я имею такое мнение, что иногда и не грех в исходники прямо вписать чуть ли не адрес регистра, ну и уж номер бита так точно. Только чем поможет собственно битовое поле? Формально fk0(1124 знаков, 29.12.2013 23:12)
- Не совсем. Над HAL может быть ещё один слой, уже нужный для совмещения разных программных интерфейсов. Т.е. есть модуль A, который, потенциально может работать с модулем B или модулем C. Как быть? Вариант первый: в проект можно включить либо fk0(510 знаков, 25.10.2013 16:28)
- Вот и отличненько. Удалось значит понять суть: императивный стиль программирования повсеместно вдалбливаемый в (не)окрепший мозг -- суть есть тонкая диверсия. Невозможно писать программы в императивном стиле. Особенно, управляющие программы. fk0(2184 знаков, 31.07.2013 16:47)
- "Далее, полезли глюки неопределенных состояний"... и это главная беда. Скрипач(750 знаков, 31.07.2013 17:03)
- Что за глюки "неопределенных состояний"? Может определить эти состояния и глюки пропадут? Apтём(334 знаков, 31.07.2013 17:19)
- "Наизнанку - это как?" Гусары молчать! :) Скрипач(334 знаков, 31.07.2013 17:30 - 17:40)
- Лучше Miro Samek-а читать - Vit(31.07.2013 22:18, ссылка)
- А можно ссылку, чё читать? А то по вашей ссылке яркие краски, бубенчики и крайне мало текста :( - Скрипач(31.07.2013 22:26)
- Переводы некоторых статей там--> - Vit(31.07.2013 22:40, ссылка)
- гуглится Vit(31.07.2013 22:34, ссылка, ссылка)
- ОС для событийного программирования? Проектирование "событийного" автомата радикально менее формализовано, чем проектирование "автомата состояний". И потому более опасно в плане редко возникающих ошибок, примеры которых я привел ранее. - Скрипач(31.07.2013 23:14 - 23:31)
- автомат без явного описания состояний это прототридсы. всё Вам опасно и редко возникающе:) - Vit(01.08.2013 00:15)
- А у вас в программе все ошибки - синтаксические, да? :) Скрипач(164 знаков, 01.08.2013 00:24)
- fk0 в том, что без событийной системы строить мелкожручее, ИМХО, прав. Запускать же адресно автомат (с неформализованным, например, описанием) по событию, которое он ожидает, т.е. описано явно, у Вас почему-то оказывается сложным. Vit(1490 знаков, 01.08.2013 10:06)
- Не так. Модель конечного автомата: Скрипач(294 знаков, 01.08.2013 14:16 - 14:22)
- Возражение не принимается. Работа жесткой логики и программы чуток отличаются. Расставьте всего-лишь 2 входа на разные порты МК и автомат "сам,, в любой момент времени, полностью определить состояние ВСЕХ своих входных сигналов" тупо НЕ СМОЖЕТ и Vit(74 знаков, 01.08.2013 16:55)
- Входами автомата могут быть: собсно дискретные входы, события, таймеры. Что приоритетнее выбирается по условиям задачи. Никакой гонки сигналов тут нет. У нас есть аварийные входы, они идут в первую очередь, очень важные события тоже в первую mazur(643 знаков, 01.08.2013 15:43)
- Для этого предполагатся, что все события могут возникать строго последовательно, и никакой гонки уже быть не может. Порядок возникновения событий во времени придётся сохранить. И вообще не понятно, что мешает автомату самостоятельно проверить fk0(106 знаков, 01.08.2013 14:50)
- я предлагал читать - Vit(01.08.2013 00:10)
- перевожу: "RTOS рулез" - Mahagam(31.07.2013 16:50)
- Топик посвящён программированию микроконтроллеров в условиях необходимости экономии электроэнергии и архитектуре ПО в целом. fk0(5489 знаков, 24.10.2011 02:41)
- Полезны аж 3 прослойки (ассемблеристам дальше лучше не читать): fk0(1812 знаков, 13.10.2011 19:56)
- Тут очень любят рассуждать о RTOS и всём таком. Но как-то массово замалчивается, что стандартная C-библиотека для неопределённого ряда своих функций не допускает рекурсивных (вложенных) вызовов. fk0(4442 знаков, dao, полностью, 13.08.2011 15:54)
- Нефиг си пинать за то, что он не хаскель ;) Рэйлвэй Каген(357 знаков, 14.08.2011 15:15)
- IMHO но на удивление все обладают одним фатальным недостатком -- процесс не может ни ожидать более чем одного события одновременно, ни не обладает возможностью асинхронной коммуникации (вроде сигналов в unix) следует напомнить дону, что Vit(245 знаков, 13.08.2011 17:58)
- Да просто использовать надо нормальные инструменты, в которых threadsafe каждой функции оговаривается отдельно. По факту в RealView очень немного функций, который нужно в мютексы оборачивать. Alex B.(183 знаков, 13.08.2011 17:19 - 17:30, ссылка)
- Сильная, нечеловеческая вещь. Ницше плакал. - General(13.08.2011 16:59)
- Интересное наблюдение. - SciFi(13.08.2011 16:33)