Многозадачные операционные системы

Brotherv
Пт 04 декабря 2015 12:52
Привет
Arduino не поддерживает «реальные» параллельные задачи (так идочные темы), поэтому я хочу представить библиотеку Arduinothreads.
Многопользовательская служба в основном находится в многозадачных операционных системах. Многопользовательская модель программирования и выполнения - это широкая модель программирования и выполнения, которая позволяет существовать несколько потоков в контексте одного процесса. Эти потоки делятся ресурсами процесса, но могут самостоятельно выполнять. Модель программирования потока предоставляет разработчикам полезную абстракцию одновременного выполнения. Многопользовательский режим также может быть применен к одному процессу, чтобы включить параллельное выполнение в многопроцессорной системе. https: // en.Википедия.org/wiki/thread_ (вычисление)

Arduinothreads - это библиотека для управления периодическим выполнением нескольких задач. Скачать Master Branch с GitHub.https: // github.com/ivanseidel/arduinothread

Martinayotte
Пт, 04 декабря 2015 г. 14:13
Вы также можете использовать Freertos, который уже портирован для STM32.

Стевех
Пт, 04 декабря 2015 г., 18:15
Martinayotte написал:Вы также можете использовать Freertos, который уже портирован для STM32.

Rogerclark
Пт, 04 декабря 2015 г., 20:04
А также использование конечных штатных машин (ы)..

Не используйте функцию задержки. (Ну, вы можете использовать короткие задержки для конкретных целей, но, как правило, лучше всего избегать использования задержки ())

Либо используйте FSM для обработки задержек, либо используйте аппаратные таймеры и прерывания.
эн.глин. См. Пример Arduino "Mlink без задержки", для одного альтернативного метода использования задержки.

На STM32 вы также можете использовать DMA для некоторых задач, следовательно, позволяя тогда микропроцессору выполнять код, в то время как аппаратное обеспечение DMA делает такие вещи, как передача в SPI или из SPI (или последовательный или память или даже от GPIO)

Mrburnette
Сб 05 декабря 2015 г. 12:55
ИМО,
Кажется, что все упускают точку зрения OP, доступна классовая библиотека для выполнения псевдо-нагрузки на UC. Это образовательный, но накладывает некоторые накладные расходы.

Я просмотрел внедрение класса и пример. Я не вижу проблем в подходе, но ограничения могут показать в тестировании, что я не выполнял.

К комментариям: «Да» все верны. Мы все использовали множество подходов для реализации кода, который не задерживает; Псевдо-т.

Луча

Martinayotte
Сб 05 декабря 2015 г., 2:51
Несколько месяцев назад я столкнулся с некоторым узким местом в ежедневном проекте работы, LPC1768 под MBBE с RTOS.
В последние месяцы я перепроектировал эту доску с STM32F405, все еще много работы для завершения тестирования.
Но, в начале повторного разработки, я решаю пройти весь путь с STM32duino, и с помощью людей здесь, порт Freertos был способом.
Я доволен этим с недель. Я даже думаю (если есть «индикация« индикации времени »), чтобы попытаться перенести его в ESP82266 World ... ;)

Стевех
Сб 05 декабря 2015 г. 5:44
Интересно, что Chibios (RTO, такие как Freertos), является основой Viper (Python) на частице.IO Photon Board (STM32).
И то же аппаратное обеспечение, когда используется с Arduinike Code Code Environment, работает Freertos.

Они оба разрешают работать сетью Wi -Fi и другое управление, пока пользовательская программа не выбивает все время ЦП.

Они оба преуспели, чтобы «скрыть» существование RTO от типичного пользователя. Но продвинутые пользователи могут делать звонки RTOS для создания задач.

(RTOS уже давно использовал термин -задачу, где у каждой задачи есть свой собственный стек. Другие миры используют термин. Существуют несколько «резьбовых» планировщиков, а затем можно переключать задачу на основе времени или выходов от поток.)

Тем не менее, мой опыт, что конечные государственные машины могут справиться с 90%+ ситуаций с крошечным кодом и с простотой.

Ахулл
Сб 05 декабря 2015 12:11
Стевех написал:...
Тем не менее, мой опыт, что конечные государственные машины могут справиться с 90%+ ситуаций с крошечным кодом и с простотой.

Brotherv
Сб 05 декабря 2015 г., 20:24
Ахулл написал:Стевех написал:...
Тем не менее, мой опыт, что конечные государственные машины могут справиться с 90%+ ситуаций с крошечным кодом и с простотой.

Ахулл
Сб 05 декабря 2015 г., 21:52
Братв написал: На самом деле Иран находится на западе Индии. Погода хорошая, но у нас до сих пор нет хороших осадков. Иран - это впечатляющая страна, Шираз и Исфахан особенно впечатляют весной. ;)

Mrburnette
Ср 30 декабря 2015 г. 12:13
Интересная бумага:

Анализ RTOS для микроконтроллеров-Warning PDF = 45 КБ
Для систем, включающих 16 или более задач, не-
Концепция группы с преодоленной в сочетании с интегрированными
Приоритетное распределение и анализ планирования приводит к
снижение количества уровней преодоления повторно-
Щит в течение 4 или более

Луча

Стивестронг
Вт 28 июня 2016 12:07
Я нашел это, это может быть полезно для некоторых из нас:
Пример многопоточного переключения с использованием минимального контекстного переключателя

Mrburnette
Вт 28 июня 2016 12:17
Стивестронг написал:Я нашел это, это может быть полезно для некоторых из нас:
Пример многопоточного переключения с использованием минимального контекстного переключателя

Grumpyoldpizza
Ср 29 июня 2016 г. 15:49
Mrburnette написал:Интересная бумага:

Анализ RTOS для микроконтроллеров-Warning PDF = 45 КБ
Для систем, включающих 16 или более задач, не-
Концепция группы с преодоленной в сочетании с интегрированными
Приоритетное распределение и анализ планирования приводит к
снижение количества уровней преодоления повторно-
Щит в течение 4 или более

Луча

Олли
Ср 29 июня 2016 г. 18:36
Protothreads уже более 10 лет, чтобы позволить появиться многозадачности без сложностей, связанных с управлением стеком и вытеснением. Преодоление создает так много проблем косвенных систем, что на практике качество продукта снижается.

Почти в течение 10 лет была OS Contiki, основанная на протототе. Он широко используется в системах связи, где управление временем необходимо с минимальным временем ожидания и большим количеством временных условий.

Я участвовал в разработке ОС в реальном времени для коммуникации и промышленного контроля в течение 30 лет назад и, основываясь на моих наблюдениях за последние 40 лет, моя рекомендация - это решение, которое уменьшает сложность общей системы.

Ура, Олли

Grumpyoldpizza
Чт 30 июня 2016 г., 21:53
Олли написал:Почти в течение 10 лет была OS Contiki, основанная на протототе. Он широко используется в системах связи, где управление временем необходимо с минимальным временем ожидания и большим количеством временных условий.

Mrburnette
Чт 30 июня 2016 г., 11:50 вечера
Grumpyoldpizza написал: <...<Однако типичные MCU ARM перешли в SRAM 16 КБ, где реальная превентивная многозадачность является меньшей проблемой, и преимущество надлежащего слоя программного обеспечения является более важным.

Martinayotte
Пт, 01 июля 2016 г. 2:45 утра
... А с F4S, в котором гораздо больше SRAM, можно добавить много подставки задачи ...

Олли
Пт, 01 июля 2016 г., 17:54
Если в одной конце у нас есть Arduino с полной блокировкой и без какой -либо поддержки для многозадачности, а в другом конце у нас есть промышленные RTO с соответствующими процессами для управления требованиями, обеспечения качества, управления исходным кодом, отслеживания дефектов и аналогичных дисциплин, что было бы сладким местом для аудитории на этом форуме?

Я читаю, что он очень близок к простому Arduino без какой -либо ОС. Какие системы RTOS вы используете, и вы можете порекомендовать некоторые из них этой аудитории?

Ура, Олли

Ddrown
Сб 2 июля 2016 г. 1:09
Олли написал:Если в одной конце у нас есть Arduino с полной блокировкой и без какой -либо поддержки для многозадачности, а в другом конце у нас есть промышленные RTO с соответствующими процессами для управления требованиями, обеспечения качества, управления исходным кодом, отслеживания дефектов и аналогичных дисциплин, что было бы сладким местом для аудитории на этом форуме?

Я читаю, что он очень близок к простому Arduino без какой -либо ОС. Какие системы RTOS вы используете, и вы можете порекомендовать некоторые из них этой аудитории?

Ура, Олли

Пито
Sun 3 июля 2016 г. 18:57
Я сделал с Нилртосом на Ардуино и был доволен этим. Выполнил около 20 задач, Nilfifo с данными написания SDCARD. К сожалению, Билг (он сделал порт в AVR) не заинтересован в том, чтобы перенести его в STM32Duino.. http: // форум.Ардуино.CC/INDEX.PHP?тема ... MSG1092515