Микроконтроллеры

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Микроконтроллеры » Остальное » RTOS


RTOS

Сообщений 1 страница 30 из 38

1

Вопрос
Когда стоит уйти от обычной организации программы в цикле и перейти на RTOS?
Просто сам RTOS не использую, но возможно зря... поэтому и возникают такие вопросы. Какие плюсы дает ОСРВ и какие минусы.

Какой то расплывчатый вопрос получился.... Короче в каких проектах Вы использовали RTOS, а в каких наоборот отказались от него в сторону стандартного подхода.  Очень интересно.

2

+ за вопрос.

3

RTOS создавались прежде всего для облегчения жизни программистам. RTOS предлагает набор готовых сервисов и рецепты правильного программирования. Особенно важно, когда программа сложная, одновременно нужно реагировать на множество внешних событий. Но конечно RTOS требует накладных расходов: ОЗУ, загрузка процессора, код более сложный. И требуется некоторое время на изучение, а это тоже ресурс. RTOS прменяют повсеместно, от жёстких дисков, до чипов blue tooth.

4

Тут оправданность выбора, изучения и перехода сильно зависит от задач.
Оправдано только при необходимости работы с большим потоком событий с гарантией реакции на каждое из них.
Иногда ситуация может быть разрешена распределением обработки на несколько устройств.
А так RTOS разного вида вполне себе живут вокруг нас.
Даже примитивные кнопки (iButton) на чипах от TI вполне себе с этой системой живут.
Конечно меняется подход к программированию, но сильно сложного там ничего нет.
При опыте работы с конечными автоматами все покажется очень похожим ;).

5

Atomic-dm написал(а):

Просто сам RTOS не использую, но возможно зря...

Так попробовал бы и впечатлениями потом поделился, что понравилось, что не понравилось
Очень интересно )

6

vt340 написал(а):

Так попробовал бы и впечатлениями потом поделился, что понравилось, что не понравилось
Очень интересно )


я просто на работе переквалифицировался в программиста STM32.случайно  так вышло, до этого изучения МК было исключительно домашним хобби. Короче теперь работа и увлечение тесно переплелись, что приятно . Но так получилось что нужно закончить большой чужой проект в котором важна скорость обработки сигнала, а также обеспечить длительную работы от аккумулятора. так же должна быть возможность расширения устройств - разных штук типа GPS, блютус и т.д.
Учитывая что есть разные задачи в устройстве то приходят мысли про использование в этом всем RTOS. Но в тоже время учитывая необходимую стабильность и безотказность устройства , наличия большого количества непонятного кода самой ОС немного пугает. ресурсов то хватит, stmF4 используется. но целесообразно ли ?!?!!? вопрос открытый.
Если бы делал исключительно для себя и в качестве личного проекта, то думаю точно бы использовал RTOS , а пока  что-то как то стремно сырую, но рабочую прошивку в 60тыс. символов переводить на RTOS. пока я лишь вникаю и привожу в порядок чужой код. Возможно позже начну делать альтернативную версию с RTOS :)

Отредактировано Atomic-dm (2017-07-18 01:11:55)

7

Да я просто намекаю, что лучше самому посмотреть кино, чем судить о крахе и подъёме Голливуда по чужим рецензиям )

8

Пример проекта на RTOS. Сниффер SPI, бывает полезно знать что на самом деле передаётся на подчинённый чип. Блок SPI с высокой и неравномерной скоростью читает данные и передаёт на RS-232. Конечно через промежуточный буфер. Если делать на RTOS, проблема решается просто. Одна задача срабатывает от прерывания блока SPI и посылает даные на задачу отправляющую данные в RS-232. Эти две задачи взаимодействуют через очередь FIFO, в FreeRTOS есть такие объекты. У меня есть скелетные проекты по FreeRTOS http://stm32.aiq.ru/FREERTOS/FreeRTOS.html

9

ИМХО, цитата из ссылки выше является исчерпывающим ответом на вопрос ТС.
FreeRTOS - это ОС жёсткого реального времени, но фактически назвать эту программу операционной системой, можно лишь с натяжкой. Скорей это планировщик с развитыми дополнительными сервисами. В классическом понимании,  ОС подменяет для прикладных программ реальную вычислительную машину, машиной с упрощённой архитектурой, скрывая сложность управления аппаратурой. Неотъемлемым атрибутом современных ОС, наличие слоя драйверов взаимодействующих с аппаратурой, менеджеры ресурсов, обеспечивающие использование ресурса несколькими задачами и т.п. Соответственно структурированная по уровням ОС упрощает создание прикладных программ. Примером полноценной ОС реального времени может служить eCOS или QNX.
В то время как применение FreeRTOS, не отменяет знание аппаратуры МК и программист продолжает работать на достаточно низком уровне. Но во многих случаях выгода от применения FreeRTOS имеется. Часто один МК должен реагировать на множество разных событий, выполнять несколько задач одновременно, тут на помощь приходит FreeRTOS.

10

После 3+ лет погружения в любительский эмбед [на изиэлектроникс] я всё больше склоняюсь к тому, что сразу после мигалки должна быть какая-то rtos [особенно для arm]

11

А я после девяти лет любительского эмбеда считаю, что ртось не нужна ☺

12

Eddy_Em написал(а):

А я после девяти лет любительского эмбеда считаю, что ртось не нужна ☺

Тебе или эмбеду? )

13

Логически все к этому приходят )) Никто же на компах не сидит чисто под консолью ))

14

Логически к "все" никак не относится... Ну вот тебе ртос чем помогла??? Да ни чем... И в ближайшем будущем 100%  охвата ртосом ждать не приходится...

15

С консолью кстати хорошая аналогия, если подразумевать под этим консольные программы
В досовские времена любители программирования могли развлекаться низкоуровневым программированием
Но под виндовс могут уже только высокоуровневым [с библиотеками, фреймворками, интерпретаторами и т.п.]
Ну или продолжать по старому, но это и будут тогда только консольные программы в виндовс

Попытки программировать сложные мк методами программирования простых мк обречены
И варианта в общем-то только два - либо сложные мк и сложные методы, либо простые методы и простые мк

16

Посматриваю и в сторону хала и куба, там же встроенна FreeRtos. Что мы экономим ? Память? Скорость ? В стм32 .
Да там в микрочипе 8 битники и скорость не ахти.

Спорить не буду, просто свои размышления. Да надо уметь читать и rm и т д , знать за что какой отвечает регистр при отладке.

17

CERGEI написал(а):

Посматриваю и в сторону хала и куба, там же встроенна FreeRtos. Что мы экономим ? Память? Скорость ? В стм32 .
Да там в микрочипе 8 битники и скорость не ахти.

Спорить не буду, просто свои размышления. Да надо уметь читать и rm и т д , знать за что какой отвечает регистр при отладке.

Вот так взять и просто опустить руки. И что что оно там встроено?
Прикручивают и без калокубов... https://www.youtube.com/watch?v=xXGXn9D04nE

18

CERGEI написал(а):

Что мы экономим ? Память? Скорость ? В стм32 .

Деньги. :) Как во время разработки, так и во время поддержки устройства в его цикле жизни.
В плане ХалоКуба, если делать железки для медицины - использование халокуба влечет за собой кучу человеколет для его "понимания" и тестирования.
Основное требование в медицине (ну я про немецкую сейчас, чтоб получить сертификат == право на продажу железки), понимание как оно работает в плоть до последнего регистра в цепочке Аппликуха - девайс - драйвер - ХАЛ - регистр - железо. Понимание, и возможность доказать это понимание, если вдруг случится такая необходимость (уже случались, к сожалению, такие необходимости, но после всех проверок и наших доказательств выявили фактор кривых рук пользователей).
С Халокубом это сделать ооооочень сложно, с его кашей в дефайнах, как и в подходе к работе с железом. И тем более, что оно малость баговатое, что в этом всем приходится находить ошибки и править.

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

В принципе - та же канитель с и RTOS. Я немного покопался в недрах FreeRTOS, есть возможность сравнить с SeggerOS. Для медицины класса С берем Зеггеровскую, для класса B - FreeRTOS.
К вопросу - зачем она нужна....
Ну конечно можно систему GUI и на обычном большом цикле с простеньким шедулером написать, но с RTOS это немного быстрее получится :)

Отредактировано MasterAlexei (2018-11-24 15:03:35)

19

Хорошие факты,просто думал stm хорошо все отслеживает ошибки и т. д.
А то смотрю веб семинар https://www.youtube.com/watch?v=LJHYT_oKYnc  на хале и кубе все настраивает. В какой области медицины вы ведете разработку? А то сам в медицине по рентген и медтехник.
SeggerOS платная ?

Об прозрачности конечно не подумал,если ошибка будет конечно самому искать или переписывать все.

20

CERGEI написал(а):

Хорошие факты,просто думал stm хорошо все отслеживает ошибки и т. д.

Кхе кхе я аж подавился тут печенькой :)

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

CERGEI написал(а):

А то смотрю веб семинар https://www.youtube.com/watch?v=LJHYT_oKYnc  на хале и кубе все настраивает.

Халокуб удобен только в одном случае:
вы получили из производства плату и вам надо проверить, всё ли правильно запаянно. Для этого обычно пишутся быстрые тесты, которые там пару байт в УАРТ кидают, светиками моргают. И все.
Остальная работа уже будет идти на совершенно другом уровне.

CERGEI написал(а):

В какой области медицины вы ведете разработку? А то сам в медицине по рентген и медтехник.

Наша фирма OEM в области иземерния потоков жидкостей в трубах :)  Как силиконовых, так и венах человеческих.
em-tec.de
Параллелльно еще есть пара проектов, но про них пока не могу говорить. Скажу только, что если ЭТА железка вдруг встанет, то человек умирает в течение 7 секунд. Ну это так гласит теория. Я сам не знаю точно, сколько там времени остается.

CERGEI написал(а):

SeggerOS платная ?

Да.
https://www.segger.com/purchase/pricing/embos/

21

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

Пару вопросов по embOS :
1) Интересует отладка задач,их вызов , типа графиков как FreeRtos ( хотя там надо снимать дамп работы потом подсовывать программке на компе если не ошибаюсь) . Конечно посмотрел видео https://www.youtube.com/embed/aARVmxpzxsI
2) В чем ограничения трех типов лицензий ? И цена их ?

22

CERGEI написал(а):

Не уж они бедные такие и не могут нанять хороших программистов для написания адекватного кода.

CERGEI, это ты так рассуждаешь о крупнейшей компании? )
ST делает именно то, что хочет, и именно так, как хочет, и вполне успешно
И все будут танцевать под эту музыку, независимо от того, нравится или нет

23

CERGEI написал(а):

Пару вопросов по embOS :
1) Интересует отладка задач,их вызов , типа графиков как FreeRtos ( хотя там надо снимать дамп работы потом подсовывать программке на компе если не ошибаюсь) . Конечно посмотрел видео https://www.youtube.com/embed/aARVmxpzxsI
2) В чем ограничения трех типов лицензий ? И цена их ?

Ну... Я у них не работал :) про ценообразование ничего сказать не могу.
Про лицензии тут есть их описание https://www.segger.com/purchase/softwar … se-models/
Там они различают сколько процессоров используется, сколько разработчиков, один проект, или несколько разных проектов, ну и в каком виде продукт, исходники или библиотека без исходников.
В принципе они могут все это проверить, кроме, разве что, сколько человек пользует этот продукт, но этот момент они отслеживают ограничено тем, что доступ к продукту организуют для конкретного человека с его конкретными емылом, и с паролем, ими назначенным. Причем они перед продажей позвонят и проговорят с вами.

Про отладку очень рекомендую j-link, SystemView, Ozone. От зеггера, конечно. SystemView делает запись миллиона событий, таких как прерывания, переключение шедулера, и кастомные события, которые можно самому определить. Поддерживает как FreeRTOS, embOS, так и без осевые системы. Очень помогает разобраться, какая задача чего и когда выполнила, как долго, и сколько раз.

Ozone просто очень хороший дебагер. Очень. Пока лучшего не видел. Может где-то и есть, но на глаза не попадался.

24

vt написал(а):

Тебе или эмбеду? )

Мне, прежде всего. Но и эмбеду, думаю, тоже. Если ты начинаешь задумываться о ртоси, то не лучше ли перейти на уровень выше и взять в качестве мастера какую-нибудь "малинку-апельсинку"? А МК пусть своей задачей занимается.

А что касается ST, то было бы неплохо от них еще и сниппеты для других линеек МК иметь, дабы самому их не писать. Т.к. сниппеты для F0 не всегда можно использовать на других сериях.
Все, больше ничего не надо от них: описания регистров уже есть, так что все хорошо. Что касается их стека USB, то наткнулся я раз на USB от них для STM32F0, очень даже неплохо написано (если выкинуть половину кода). Разве что в CDC они почему-то не используют EP1 (которая для прерываний). Вот USB "для всех линеек" — да, страшное.
Ну, мне, собственно, только CDC нужен. Я его сделал на основе HID отсюда, больше мне от USB ничего не нужно (еще на STM32F103 это портирую когда-нибудь, и все).

25

Eddy_Em написал(а):

Но и эмбеду, думаю, тоже. Если ты начинаешь задумываться о ртоси, то не лучше ли перейти на уровень выше и взять в качестве мастера какую-нибудь "малинку-апельсинку"? А МК пусть своей задачей занимается.

Я могу в разные игры играть - от х51 до Ады - но у игр должны быть какие-то общепринятые правила, иначе получаются не настольные, а ролевые игры )
А в ролевые игры я играть не хочу, поэтому и задумываюсь

26

Попробуем присабачить к FreeRtos SystemView.

Я правильно понял что нужно заменить пару файлов в фреертос из патча segger, подключить в проект файлы systemview и вызвать в майн инициализацию systemview до запуска ртос самой ?

27

CERGEI написал(а):

Попробуем присабачить к FreeRtos SystemView.

Я правильно понял что нужно заменить пару файлов в фреертос из патча segger, подключить в проект файлы systemview и вызвать в майн инициализацию systemview до запуска ртос самой ?

Да. Все так. Только я не заменял файлы из FreeRTOS, а сравнил то, что в патче с тем, что у меня в той версии было, что в проекте использовалось, и замерджил их.

Отредактировано MasterAlexei (2018-11-26 00:18:32)

28

Интересно как пропатчить то,файл с расширением .path. Просто первый раз встречаюсь с таким. А как вы замерджил их ? просто не встречался с этим еще ))

Вручную или спец программой, попытался с помощью WinMerge. Не хочет сравнивать один файл и папку с кучей файлов ))

http://s9.uploads.ru/t/yiTjB.png

Сравнение сделал,а как применить,пока не соображу в этой проге ))

http://s8.uploads.ru/t/HSdwQ.png

29

А зачем тогда давал ссылку на эту тему упоротым ламерам с казуса??? Пусть в своём 3-х летнем гавне так и плавают... если им так нравится...
Всегда поражался когда... ничего не знают... ничего не могут... ничего не умеют... но советы дают с агрессивным опломбом... с претензией на аксиому и святого поводыря...
А нафига??? Результата и пользы от этого то всё равно нет... причём напрочь... типа совсем...

30

Да ладно,с нас убудет что ли ?)
Попробую в ручную поправить исходники ртос,посмотрел кажись все понятно.


Вы здесь » Микроконтроллеры » Остальное » RTOS