Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Apache Mynewt OS
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы
DASM
https://mynewt.apache.org/
Использовал ли кто? Нравится стиль кода, нет обилия гадких макросов и жуткого соглашения имен как во FreeRtos, есть LoRa PHY and LoRaWAN , есть стек 5 BLE включая Mesh
Native support for TCP/IP, UDP
Supports protocols for constrained networks e.g. CoAP and 6LoWPAN
Это все мне надо уже сейчас, запустил OpenThreadб надо CoAP прикручивать. Работа надо осью ведется
Но судя по всему мало кто о ней слышал, вот сижу, думаю.
С FreeRtos связываться не хочется, вызовы для меня малочитабельны, зазнайство авторов ("запрещается сравнивать фриртос с другими ОС", ППЦ.
Смотрел ещё RTEMS - по моему она перегружена ерундой и за уши posix притянут. Если у меня распберри, то я ставлю нормальный линукс, а если STM с метром всего флеша, то мне не этих рюшек. ucOS и смотреть не хочу, хоть его и купил мой любимый Silabs, тем не менее он имхо образец того, как не надо, макрос на макросе. И когда я ей игрался , там не было round robin, я не понимаю систем, где нельзя иметь одинаковые приоритеты
mantech
Цитата(DASM @ Nov 2 2017, 16:28) *
есть LoRa PHY and LoRaWAN , есть стек 5 BLE включая Mesh
Native support for TCP/IP, UDP
Supports protocols for constrained networks e.g. CoAP and 6LoWPAN


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

Цитата(DASM @ Nov 2 2017, 16:28) *
Но судя по всему мало кто о ней слышал, вот сижу, думаю.


Значит выявлять грабли придется в том числе и вам laughing.gif

Цитата(DASM @ Nov 2 2017, 16:28) *
С FreeRtos связываться не хочется, вызовы для меня малочитабельны, зазнайство авторов ("запрещается сравнивать фриртос с другими ОС", ППЦ.


О таком не слышал, но если так, то действительно ППЦ.
DASM
https://habrahabr.ru/post/267573/
Заключительные слова

Цитата
Почему бы просто не использовать FreeRTOS?

Окей, есть несколько причин.

Во-первых, мне не нравится их лицензия: по лицензии, FreeRTOS запрещено сравнивать с другими продуктами! Гляньте на последний параграф из FreeRTOS licence:

FreeRTOS may not be used for any competitive or comparative purpose, including the publication of any form of run time or compile time metric, without the express permission of Real Time Engineers Ltd. (this is the norm within the industry and is intended to ensure information accuracy).


Насколько мне известно, они добавили это условие после очень старой дискуссии на форуме Microchip, где люди выложили графики сравнения нескольких ядер, и эти графики были не в пользу FreeRTOS. Автор FreeRTOS заявил, что измерения неверны, но, как ни забавно, не смог предоставить «правильные» измерения.

Так что, если я напишу ядро, которое оставит FreeRTOS позади в том или ином аспекте, я не смогу об этом написать. Может, я чего-то не понимаю, но, по-моему, ерунда какая-то. Мне не нравятся подобные вещи.


Ну а мне еще больше не нравятся их система именований. К тому же это скучно - сидеть на OS на котрой и так все почти сидят.
Цитата
в закрытых либах, но какая разница по большому счету..
- большая . Силабс нагородил BLE стек, который не может работать с субГГц одновремеенно (ну в смысле быстро переключать, нужен ребут чипа. А чип двудиапазонный). Мне пришлось advertisment делать вообще без стека, просто на базе 2.4 ГГц трансивера в чипе. Был бы стек открыт - нашел бы в чем у них проблема быстро переключать диапазоны
x893
Адаптировал под nRF51 и SX1276 для китайских товарищей.
Под http://realtime.io

Система как система. Типа mbedos, но попроще.
Хотя кому как.
AlexandrY
Цитата(DASM @ Nov 2 2017, 15:28) *
... мой любимый Silabs ...

Так Mynewt поддерживает BLE только на Nordic, хотя да, утверждают что полностью заменили SoftDevice
Но беда в том, что у Nordic-а радиочасть практически не документирована, да и Nordic в целом ущербный.
Так что те сорсы мало помогут.

Я бы оставался на Silabs и спокойно юзал BLE в виде либы. Нужен RF - поставил бы еще один чип.
Круче uC/OS все равно ничего нет.
DASM
Ну usOS теперь то точно под Силабс пойдёт sm.gif но мне не нравится. Ставлю mynewt, поделюсь впечатлениями.
И если руки дойдут то https://ru.m.wikipedia.org/wiki/Google_Fuchsia фуксию. Непонятно будущее, но интресено, что там Google для микроконтроллеров наваял.

Ble в либе мне не подойдёт

https://www.silabs.com/community/wireless/b..._and_subgh-IjNL
mantech
Цитата(DASM @ Nov 2 2017, 21:20) *
Был бы стек открыт - нашел бы в чем у них проблема быстро переключать диапазоны

Ой, неблагодарное это дело, как-то копался в исходниках зигби - ну нафиг, проще решил поставить свой МК для управления готовым модулем.

Цитата(DASM @ Nov 2 2017, 21:20) *
Силабс нагородил BLE стек, который не может работать с субГГц одновремеенно (ну в смысле быстро переключать, нужен ребут чипа. А чип двудиапазонный).


Ну это вполне себе может быть, то, что чип 2х диапазонный не означает, что он параллельно и тут и там работать будет, да и в большинстве своем используется один диапазон, который выбирается при запуске.
Думаю в силабсе не рассчитывали, что из этого чипа будут делать междиапазонный маршрутизатор biggrin.gif
ЗЫ. Насколько помню радиочипы(тот же нордик) на 2.4 и 800МГц обвязка отличалась, причем заметно..

Цитата(AlexandrY @ Nov 2 2017, 21:45) *
Я бы оставался на Silabs и спокойно юзал BLE в виде либы. Нужен RF - поставил бы еще один чип.

Вот тут соглашусь с вами..
DASM
Я понимаю, что он неодновременный. Но на API ихнем я сейчас с 2.4 ГГц в 868 Мгц примерно за 150 мкс перехожу, чего мне с головой хватает. Еще один чип? Ребята, пора деньги считать ужо,Силабсовские чипы и так не самые дешевые (впрочем они того стоят своими возможностями, афигенно удобной периферией и вообще беспроблемностью и нечувствительностью ко всяким лажам по разводке итп.)

а 2.4 и 800МГц обвязка отличалась - у Силабс все по уму, на 2.4 встроенный балун в чип и отдельно сразу выход-вход зашаренный, на субГГц - отдельно дифф. вход и дифф выход
mantech
Цитата(DASM @ Nov 2 2017, 22:44) *
Еще один чип? Ребята, пора деньги считать ужо,Силабсовские чипы и так не самые дешевые (впрочем они того стоят своими возможностями, афигенно удобной периферией и вообще беспроблемностью и нечувствительностью ко всяким лажам по разводке итп.)


Не вижу проблем. У силабсов есть прекрасные и недорогие субгигагерцовые чипы, с spi интерфейсом, который легко подключить к мастер-чипу с блюпупом на 2,4. Поднять на нем упрощенный протокол связи и все! Даже переключаться не нужно - полный реалтайм. biggrin.gif Вам 2 МК зачем в этой связке?
Tarbal
Цитата(mantech @ Nov 2 2017, 23:35) *
Ой, неблагодарное это дело, как-то копался в исходниках зигби - ну нафиг, проще решил поставить свой МК для управления готовым модулем.


У меня такое впечатление, что зигби какие-то гоблины с Марса писали. У Friscale такое криптопрограммирование применено в стеке Зигби, что ни на что не натянуть.
Сейчас присматриваюсь к ZBOSS.
Kabdim
Вкусная вещь, но только планируем использовать. Кому-то придется стать первопроходцем.
DASM
Покопался я с сабжем темы, вначале все хорошо, но потом застрял на подключении openocd, мне он не нужен, есть jlinkGDB, а как прикрутить неясно. Стал разбираться с их системой то ли сборки, то ли еще чего под названием newt, и мне в итоге показалось, что в этом проекте сама операционка побочна, а двигают они именно newt. А это все очень громоздко и долго. Забил
AlexandrY
Цитата(DASM @ Nov 5 2017, 11:11) *
Покопался я с сабжем темы, вначале все хорошо, но потом застрял на подключении openocd, мне он не нужен, есть jlinkGDB, а как прикрутить неясно. Стал разбираться с их системой то ли сборки, то ли еще чего под названием newt, и мне в итоге показалось, что в этом проекте сама операционка побочна, а двигают они именно newt. А это все очень громоздко и долго. Забил

Кто бы сомневался. biggrin.gif
Я сразу увидел что это холостой выстрел.
TCP стек LwIP, FatFS, mbedtls - все говорит о нищите и побирательстве.
Документация практически нулевая.
Интерес может представлять их файловая nffs для флешей. Но опять же как работает - ноль инфы.
Загадка только в том где они взяли Mesh BLE. И работоспособен ли он там.
mantech
Цитата(AlexandrY @ Nov 5 2017, 16:12) *
TCP стек LwIP, FatFS, mbedtls - все говорит о нищите и побирательстве.


Вот не понимаю я этого стеба, вы сделали что-то лучше, знаете какие-то серьезные недоработки этих софтин, или предложите виндовс 10?

ЗЫ. Вы так и не объяснили мне, чем так плохи memcpy и иже с ними, и если да, то чем копируете сами?
DASM
Поставил freertos, покрутил, ну жить можно, только зачем? Не понимаю я сколько стека дать потоку чтобы были гарантии. Похоже их не будет никогда, по моему вытеснялка без mmu это как имитация красной икры. А если дать с большим запасом, ну знаете.. у меня 256 кб всего озу, давать на кнопку потока 32 кбайт стека не буду. Вернулся к своим самописным таймерам в очереди, самая настоящая кооперативка и все предсказумо. Может если потоки типа веб сервер + меш стек + gui вытеснялка и хороша.. на cortex m53 или А10. Для М4 это балрвство имхо
mantech
Цитата(DASM @ Nov 6 2017, 10:09) *
по моему вытеснялка без mmu это как имитация красной икры.


По моему - это сравнивать мягкое с теплым. Вытеснялка - это просто метод переключения контекста, памяти он не жрет почти нисколько. Жрачка начинается, когда к нему подкидывают всякие очереди и стеки задач. Посему решил этим не заморачиваться, выделил несколько глобальных структур, локальные стеки нужного объема и простейший менеджер памяти - расход последней уменьшился в разы, работает на ура...

Цитата(DASM @ Nov 6 2017, 10:09) *
давать на кнопку потока 32 кбайт стека не буду


Что это такое не знаю, к сожалению, но такой стек у меня на весь GUI приходится... на lwip в полтора раза больше.
DASM
Ну я и имею в виду, что в вытеснялке под поток надо давать стек с приличным запасом

"локальные стеки нужного объема" вот об этом и речь. Когда стек один на всех у нас боль только чтобы памяти хватило вообще. А когда на каждый поток свой стек то боль умножается на количество потоков
AlexandrY
Цитата(DASM @ Nov 6 2017, 09:49) *
Ну я и имею в виду, что в вытеснялке под поток надо давать стек с приличным запасом

"локальные стеки нужного объема" вот об этом и речь. Когда стек один на всех у нас боль только чтобы памяти хватило вообще. А когда на каждый поток свой стек то боль умножается на количество потоков

Есть у меня давно устоявшаяся , временем проверенная эвристика - стека на задачу в 3000 байт хватает всегда.
Если не хватает - переделывайте библиотеки используемые в задаче, они сделаны криво либо не для embedded.

Цитата(mantech @ Nov 5 2017, 19:30) *
Вот не понимаю я этого стеба, вы сделали что-то лучше, знаете какие-то серьезные недоработки этих софтин, или предложите виндовс 10?
ЗЫ. Вы так и не объяснили мне, чем так плохи memcpy и иже с ними, и если да, то чем копируете сами?

Не, не я крутой, а разработчики слабые.
Использование этих опенсорсов говорит о том, что у команды нет ресурсов на собственную разработку middleware.
Возможно это команда узко заточенная на BLE или даже один человек. Но в любом случае это полохой знак.

Я в TCP/IP стек вообще не лезу. Просто нет ресурсов. Поэтому юзаю как есть.
А есть оно совершенно без обязательных проверок на переполнения при парсинге HTTP, HTML, FTP и проч. протоколов.
memcpy кстати давно запрещено при программировании под Win.
Поэтому отдаю себе отчет как это опасно выставлять свой доморощенный стек в открытую сеть.


DASM
Может, но все равно какая то неудовлетворенность от того, что стек надо давать с запасом. При большом количестве потоков это неразумно. Вероятно стоит иметь 2..3 сложных потока, а мелочи выносить в один поток, который ей только и занимается.
mantech
Цитата(AlexandrY @ Nov 6 2017, 13:59) *
Я в TCP/IP стек вообще не лезу. Просто нет ресурсов. Поэтому юзаю как есть.
А есть оно совершенно без обязательных проверок на переполнения при парсинге HTTP, HTML, FTP и проч. протоколов.
memcpy кстати давно запрещено при программировании под Win.
Поэтому отдаю себе отчет как это опасно выставлять свой доморощенный стек в открытую сеть.


Странное дело, выставлять в сеть стек на винде, в которой не успевают дыры залатывать - так это норма, а упрощенный, с проверкой на переполнение(по крайне мере у меня так) - так опасно biggrin.gif
ИМХО - позорно для админов вообще что-то выставлять в сеть на винде, особенно сервера, уж линукс куда лучше и безопаснее для этого.

Цитата(DASM @ Nov 6 2017, 14:00) *
Может, но все равно какая то неудовлетворенность от того, что стек надо давать с запасом. При большом количестве потоков это неразумно. Вероятно стоит иметь 2..3 сложных потока, а мелочи выносить в один поток, который ей только и занимается.


Как бы логично, сгруппировать по потреблению памяти, будет более проще планировать стеки.
AlexandrY
Цитата(mantech @ Nov 6 2017, 13:08) *
Странное дело, выставлять в сеть стек на винде, в которой не успевают дыры залатывать - так это норма, а упрощенный, с проверкой на переполнение(по крайне мере у меня так) - так опасно biggrin.gif
ИМХО - позорно для админов вообще что-то выставлять в сеть на винде, особенно сервера, уж линукс куда лучше и безопаснее для этого.

Я как-то не верю в дыры в винде. То были не дыры, а скомпрометированные бэкдоры.
А ссылка " у меня так" не работает biggrin.gif
mantech
Цитата(AlexandrY @ Nov 6 2017, 14:35) *
Я как-то не верю в дыры в винде. То были не дыры, а скомпрометированные бэкдоры.
А ссылка " у меня так" не работает biggrin.gif


Так ясно дело, я тоже верю, что винда всегда будет работать правильно и никогда не упадет.... Но падает, отсюда вывод - плохо верю! biggrin.gif
AlexandrY
Цитата(mantech @ Nov 6 2017, 15:04) *
Так ясно дело, я тоже верю, что винда всегда будет работать правильно и никогда не упадет.... Но падает, отсюда вывод - плохо верю! biggrin.gif

У меня не падает. Что я делаю или не делаю не так? laughing.gif
mantech
Цитата(AlexandrY @ Nov 6 2017, 16:46) *
У меня не падает. Что я делаю или не делаю не так? laughing.gif

Коль не знаю я где она у вас стоит и не падает, то предположу, что вы ее не запускаете вообще biggrin.gif
DASM
Хоть мы и оффтопим, но у меня 10ка тоже никуда не падает и даже не виснит. Держу Убунту в виртуалке для сборки всяких open sorce в основном, ну и чтобы не забыть совсем, в эмбеддед без линукса никуда. Хотя для комфортной работы мне убунту не подходит ни разу, ни одного нормального файл менеджера даже.
mantech
Цитата(DASM @ Nov 6 2017, 23:51) *
Хоть мы и оффтопим, но у меня 10ка тоже никуда не падает и даже не виснит.


Сколь времени непрерывно работает? У меня висло через 2-3 недели рунтайма.
AlexandrY
Цитата(mantech @ Nov 7 2017, 09:54) *
Сколь времени непрерывно работает? У меня висло через 2-3 недели рунтайма.

Не к тому цепляетесь.
Загрузка ОС гораздо более глючный и рискованный процесс.
Винды сейчас надо оценивать по количеству удачных загрузок.
У меня сейчас после октябрьского Windows 10 Fall Creators Update каждый 3-й раз не запускается драйвер Bluetooth,
фиксировал проблемы USB драйверов, не находило пару раз SSD диск, управление глазами отвалилось.
Вот это важно.
А зависонов я уже пару лет не видел.
mantech
Цитата(AlexandrY @ Nov 7 2017, 12:24) *
Не к тому цепляетесь.
Загрузка ОС гораздо более глючный и рискованный процесс.
Винды сейчас надо оценивать по количеству удачных загрузок.

А зависонов я уже пару лет не видел.


Хорошо, соглашусь, спросил некорректно, зависаний в классическом понимании я тоже не наблюдал, скажем так, ситуаций некорректной работы системы, незагрузки драйверов, сбоев в ФС, невозможности запуска прикладной программы и т.п. Тоесть тех состояний, в которых нормальное функционирование целевой задачи невозможно...
Uuftc
Цитата(DASM @ Nov 7 2017, 00:51) *
Хотя для комфортной работы мне убунту не подходит ни разу, ни одного нормального файл менеджера даже.

Рекомендую посмотреть на filecommander.
Брать надо девелоперскую ветку вот здесь
LightElf
QUOTE (DASM @ Nov 6 2017, 10:09) *
Поставил freertos, покрутил, ну жить можно, только зачем? Не понимаю я сколько стека дать потоку чтобы были гарантии. Похоже их не будет никогда,

компилятором каким пользуетесь? У ряда компиляторов есть stack usage analisys IAR Stack usage и GNU Static Stack Usage. Можно просто посчитать, сколько стека нужно конкретной задаче. Или не помогает?
Что до лицензии FreeRTOS - с 10 версии лицензия поменялась, всякую гнусь оттуда вычистили. Можно честно пользовать для любых целей. Насчет же существовавшего ранее запрета на сравнение - я эту историю хорошо помню. Какие-то комики скомпилировали FreeRTOS без оптимизации и бросились таскать по всяким форумам. Автор объяснил, что сравнение выполнено некорректно. Началось размазывание соплей и прочая такая фигня. Чем бегать по интернету и на каждом углу сраться - автор просто запретил публиковать результаты не согласованного с ним тестирования.
Сергей Борщ
QUOTE (LightElf @ Dec 7 2017, 15:56) *
Какие-то комики скомпилировали FreeRTOS без оптимизации и бросились таскать по всяким форумам.
Я компилил с максимальной оптимизацией и по размеру и по скорости и там было все равно все очень грустно. Ну да и ладно, сняли ограничение - и хорошо. Я от этой ОС отказался после первого же проекта 11 лет назад, уж очень качество кода там было низкое - (void *) везде, задавленные #pragma-ми предупреждения компилятора. Стало лучше - молодцы.
LightElf
QUOTE (Сергей Борщ @ Dec 7 2017, 18:06) *
Я компилил с максимальной оптимизацией и по размеру и по скорости и там было все равно все очень грустно. Ну да и ладно, сняли ограничение - и хорошо. Я от этой ОС отказался после первого же проекта 11 лет назад, уж очень качество кода там было низкое - (void *) везде, задавленные #pragma-ми предупреждения компилятора. Стало лучше - молодцы.

Качество кода - это другой вопрос. Слишком много всяческих компиляторов, с их собственными особенностями поддерживается в параллель. С другой стороны - сделано очень академично, в расчете на хорошую масштабируемость. Для случая трех задач и двух прерываний - избыточно.
Но стиль - кэмелкейс вперемешку с подчеркиваниями maniac.gif
b0ik00leg
Обычная система. Сильно жестких нареканий нет.
DASM
Я наверное на scmRtos остановлюсь пока, мне от ртос более чем она дает и не надо, зато надо STL и ++, оные хоть и можно подружить с С оськой , это неудобно. Если только и вовсе не довольствуюсь SST
Tarbal
Цитата(AlexandrY @ Nov 6 2017, 13:59) *
memcpy кстати давно запрещено при программировании под Win.


Какое счастье, что мне там не приходится программировать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.