Перейти к содержанию
    

Пример кода USBX CDC ACM для ThreadX

21 minutes ago, Chudik said:

Ага. И на хабре появилась статья для новичков в RTOS. Т.е. и для меня :) Давно искал хорошую RTOS и чтобы можно было железку в кубике настраивать

https://habr.com/ru/company/quarta/blog/514084/

Автор статьи  по ходу не понял чем Azure RTOS действительно уникальна и перечислил фичи которые есть у большинства RTOS. 
Судя по всему RTOS-ы не их специализация. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

21 minutes ago, AlexandrY said:

Автор статьи  по ходу не понял чем Azure RTOS действительно уникальна и перечислил фичи которые есть у большинства RTOS. 
Судя по всему RTOS-ы не их специализация. 

Я так понимаю, что у него была задача показать, что в кубике можно не только FreeRTOS подключать. Ну и привлечь новичков типа меня к использованию этой системы. Может в компании обнаружили доступность системы для всех с учётом того, что похоже для МК 5 компаний лицензия собирается быть бесплатной, стали её изучать и заодно сделать уроки. В конце концов, такие статьи ещё и неплохая реклама. Скажем, для компании, которая не имеет ресурсов для разработки FW, а надо.

Для меня, как сказал выше, большим плюсом было соединение RTOS+CubeMX+ родной HAL от ST. Т.е. система даёт возможность традиционно обращаться к периферии

Плюс хорошая временная детерминированность, привет FreeRTOS.  И добила меня сертификация DO-178.  

А можно вкратце об уникальности системы? Чтобы знать, раз я на неё реально подсаживаюсь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, Chudik сказал:

Я так понимаю, что у него была задача показать, что в кубике можно не только FreeRTOS подключать.

И что он натворил? Взял и полностью внедрил этот CubeMX в код системы и устройства. И теперь этот CubeMX на 100% можно сказать сросся со всеми компонентами и не так-то просто его теперь оттуда выкорчевать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, AleksBak said:

И что он натворил? Взял и полностью внедрил этот CubeMX в код системы и устройства. И теперь этот CubeMX на 100% можно сказать сросся со всеми компонентами и не так-то просто его теперь оттуда выкорчевать.

Не любите HAL - не используйте. Берите LL или в регистры руками.

Всё, что написано в статье на хабре применимо хоть к чему.

IAR/Keil/голый gcc/...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, Chudik said:

Для меня, как сказал выше, большим плюсом было соединение RTOS+CubeMX+ родной HAL от ST. Т.е. система даёт возможность традиционно обращаться к периферии

Плюс хорошая временная детерминированность, привет FreeRTOS.  И добила меня сертификация DO-178.  

А можно вкратце об уникальности системы? Чтобы знать, раз я на неё реально подсаживаюсь.

На самом деле я не видел RTOS в которые нельзя было бы впихнуть некий уровень абстракции периферии третьей стороны.
Но это всегда выливается в проблему поддержки.
Впиливание неродного HAL-а (а для ThreadX нужен специальный HAL), которым здесь является HAL от ST приведет к деградации свойств RTOS и ее детерминированности. 
Например для Synergy сделан HAL заточенный под ThreadX и там реально никаких проблем с периферией. Взлетает абсолютно все и как надо с первого раза. 
А для STM я бы оставался на FreeRTOS. 
Ну может быть µC/OS.
µC/OS, кстати, идеальный вариант для новичков, там буквально разжевано как строить приложения с RTOS, какие объекты синхронизации использовать.
Все прикладные протоколы типа FTP, Telnet, HTTP и проч. имеют поддержку SSL, а у ThreadX такого нет. 

А уникальность ThreadX в том что она уникально интегрирована с Synergy и это решение свободно и  отрыто. 
Другие оси не предлагают такого уровня интеграции с периферией чипов. 

Короче говоря, я думаю Azure на STM с HAL-ом будет ни чем не лучше чем mbed, µC/OS или Zephyr с тем же HAL-ом.

Но может я чет не знаю про CubeMX.
Скажем вы видели в CubeMX ту самую поддержку  THREADX MODULES?
Автрр статьи на хабре их разрекламировал, а потом как-то забыл.
Между тем эти THREADX MODULES требуют плотной интеграции с MPU, а это серьезная вещь. У Synergy такого нет. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 hours ago, x893 said:

Не любите HAL - не используйте. Берите LL или в регистры руками.

Согласен. Использование кубика не означает, что после первичной настройки периферии нельзя использовать какой угодно интерфейс. Единственно ST предупреждает, что лучше использовать во всё коде одинаково.

 

2 hours ago, AlexandrY said:

я не видел RTOS в которые нельзя было бы впихнуть некий уровень абстракции периферии третьей стороны.
Но это всегда выливается в проблему поддержки.

Так-то оно так. Но когда я пытался поиграться с ChibiOS, которая мне очень понравилась, то в общении с автором было сказано, что никаких сторонних HAL, только его личный. Иначе будет крах системы. Здесь вроде как использование HAL от ST не возбраняется.

 

2 hours ago, AlexandrY said:

Например для Synergy сделан HAL заточенный под ThreadX

Я не знаю, что такое Synergy. Но я пока не видел ни одной оболочки для настройки периферии, близкой по возможностям к CubeMXю Если в TheadX будет свой HAL, который работает лучше, чем от ST, никто не ограничивает переключиться на него после инициализации.

 

2 hours ago, AlexandrY said:

для STM я бы оставался на FreeRTOS. 

Однозначно нет. Есть опыт.

2 hours ago, AlexandrY said:

вы видели в CubeMX ту самую поддержку  THREADX MODULES?

Нет. Там вообще ничего кроме FreeRTOS ничего нет. И это меня сильно угнетало.

 

2 hours ago, AlexandrY said:

Автрр статьи на хабре их разрекламировал, а потом как-то забыл.

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

Я очень надеюсь, что следующая будет по GUIX

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/16/2020 at 1:47 AM, Chudik said:

Я не знаю, что такое Synergy. Но я пока не видел ни одной оболочки для настройки периферии, близкой по возможностям к CubeMX. 
Если в TheadX будет свой HAL, который работает лучше, чем от ST, никто не ограничивает переключиться на него после инициализации.

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

Я очень надеюсь, что следующая будет по GUIX

Конфигураторы типа  CubeMX есть как минимум у Renesas, NXP, Infineon. Это из тех что я рассматривал. CubeMX  не есть некий феномен. 
Сейчас посмотрел что нового в CubeMX. И да, они вообще не знают про Azure RTOS.

Т.е. их middleware никак не интегрируется в Azure. А Azure RTOS ничего не знает от таком чуде как Cude IDE.
А скажем менеджер загрузочных модулей  в Azure сделан только под IAR. Перетаскивать его в Cude IDE будет довольно больно. Потому автор и помалкивает. 
Парочка примитивных примеров Azure RTOS использующих HAL от ST будет слабой пормощью. Нагенеренное в CubeMX  все равно туда автоматически не вставить. 
А вот Synergy вставляет любую периферию в любой комбинации прямо в ThreadX со своим HAL-ом. 
Визуальный конфигуратор Synergy гораздо мощнее в этом плане чем CubeMX. 

Кстати, GUIX не имеет набора драйверов для разных типов дисплеев и дисплейных интерфейсов. 
А вот µC/OS имеет очень большой выбор таковых. 
Думаю следующая статья автора с хабра про GUIX будет просто обсасывать готовый пример из 
Azure_RTOS_6.0_STM32L4+-DISCO_STM32CubeIDE_Samples_2020_08_10.zip и не даст никаких ответов по поводу интеграции с разными дисплеями и разработке драйверов под них.  


 
    

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/17/2020 at 1:05 AM, AlexandrY said:

типа  CubeMX есть как минимум у Renesas, NXP, Infineon. Это из тех что я рассматривал. CubeMX  не есть некий феномен. 

Не феномен, но я работал с конфигураторами для TI (MSP439 и какой-то из последних ARM для работы под Линуксом), там только назначение пинов и небольшая помощь, что какие можно использовать вместо занятых. CubeMX помогает настроить дерево клоков, исправляет ошибки, сигнализирует если параметры, выставляемые для одной периферии конфликтуют с другой периферией. Может другие конфигураторы тоже это умеют, не знаю. У меня не было времени исследовать кучу других процессоров. Перешёл с MSP430 на STM32. Понравилось то, что errata чуть ли не на порядок меньше, чем у MSP, у которых errata растёт с каждым новым поколением и пока не вижу смысла перескакивать на другие процессоры. На новой работе вот только используют DSPic... :negative:, но не мне его программировать. Так что пофиг. :biggrin:

On 8/17/2020 at 1:05 AM, AlexandrY said:

Сейчас посмотрел что нового в CubeMX. И да, они вообще не знают про Azure RTOS.

Т.е. их middleware никак не интегрируется в Azure. А Azure RTOS ничего не знает от таком чуде как Cude IDE.

И бог с ним. Чем меня устроила статья на хабре - показала, как встроить и как запустить.

On 8/17/2020 at 1:05 AM, AlexandrY said:

 GUIX не имеет набора драйверов для разных типов дисплеев и дисплейных интерфейсов. 

И слава богу. :-) Можно написать свой на базе того, что даёт производитель с учётом конфигурации своего проекта, а не стандартного, рассчитанного на готовые платы. У меня вот два дисплея и EEPROM сидят на одной шине SPI. Какая Synergy это поддержит? :biggrin:

 

On 8/17/2020 at 1:05 AM, AlexandrY said:

Думаю следующая статья автора с хабра про GUIX будет просто обсасывать готовый пример из

Отлично. У меня как раз L4 :dance4: Правда, без +. Но там отличий немного. Собственно, только .ld поменять.

Но только я не увидел там примера GUIX. Только NETX для IoT

И, кстати, своего HAL у ThreadX нет, что является огромным плюсом этой системы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

7 часов назад, Chudik сказал:

А вот в Azure_RTOS_6.0.2_STM32F746G-DISCO_STM32CubeIDE_Samples_2020_08_18.zip  GUIX действительно есть.

А у Вас эта дискавери имеется (746-ая)? Или какой у Вас дисплей/на какой плате?

Может отделить бы уже часть постов от этой темы т.к. они пошли больше по самой ОС и ее компонентам?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 8/29/2020 at 9:58 PM, Chudik said:

И слава богу. :-) Можно написать свой на базе того, что даёт производитель с учётом конфигурации своего проекта, а не стандартного, рассчитанного на готовые платы. У меня вот два дисплея и EEPROM сидят на одной шине SPI. Какая Synergy это поддержит? :biggrin:

И, кстати, своего HAL у ThreadX нет, что является огромным плюсом этой системы.

В Synergy драйвера довольно продуманные. 
Они, во-первых, тесно интегрируют между собой связанную периферию. Скажем DMA,  контроллер прерываний и SPI или I2S или I2C.
Связи между ними настраиваются в графической среде. Там можно выбирать номера каналов, планировать размеры буферов, приоритеты,  подменять одну периферию другой и т.д.
В драйверах Synergy есть понятие драйвера шины.
Это, например, когда на SPI  сидит пара дисплеев, FLASH память, инерциальный модуль, контроллер BLDC и RF модуль.
И ко всему этому идут обращения из разных задач. 
Вы, как понял, писали такое вручную. В Synergy это уже есть готовое.
Каждой периферии открывается логический канал на шине как будто другой периферии там нет, совершенно прозрачно и без головной боли об объектах синхронизации, критических секциях и проч. 
Потом в Synergy есть уже встроеные в RTOS бинарные драйвера периферии к которой вам никогда не дадут документации и где вы сами драйвер не напишите. Это и аппаратный криптографический модуль и модуль видеообработки и т.д.
И да, в Synergy для ThreadX есть не просто примитивный HAL, а стеки программного обеспечения, которые можно  наращивать и расшаривать между собой.
Это концепция до которой в CubeMX еще не доросли.  

Одна беда. Пару месяцев назад IAR отказался бесплатно давать для Synergy свой компилятор и теперь хотя за него 900$,
А в доступных народу выпусках IAR Embedded Workbench нет поддержки серии микроконтроллеров Synergy. 
Видать IAR учуял спрос и большие деньги и решил немного состричь.
Так что как-то уже опасаюсь предлагать Synergy.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 hours ago, AleksBak said:

А у Вас эта дискавери имеется (746-ая)?

Нет, но это непринципиально. У меня нет и той Дискавери, на которой автор с хабра показывал пример установки. Для себя использовал ту, что у меня есть на L476 с соответствующими изменениями. Сейчас меняю этот учебный проект, слегка усложнив задачу. Просто для того, чтобы получше освоиться.

14 hours ago, AleksBak said:

Или какой у Вас дисплей/на какой плате?

Кастомная плата, на которой стоят два 5" OLED дисплея 256х64 на одной шине SPI. Ни на одной продающейся eval board такого нет и вряд ли будет. :yes: Так что точно придётся делать полностью своё. Главное - понять суть работы с GUIX. Самое близкое из примеров, наверное, будет спидометр, возможно, какие-то моменты можно будет взять и из medical. 

 

14 hours ago, AleksBak said:

Может отделить бы уже часть постов от этой темы

Это, наверное, вопрос к модераторам. Наверняка есть такая возможность.

-----------------------------------------------

39 minutes ago, AlexandrY said:

тесно интегрируют между собой связанную периферию. Скажем DMA,  контроллер прерываний и SPI или I2S или I2C.

Это я и так умею. 

41 minutes ago, AlexandrY said:

Связи между ними настраиваются в графической среде. Там можно выбирать номера каналов, планировать размеры буферов, приоритеты,  подменять одну периферию другой и т.д.

Лишний уровень абстракции. Не уверен, что это необходимо. 

43 minutes ago, AlexandrY said:

Пару месяцев назад IAR отказался бесплатно давать для Synergy свой компилятор

И на этом можно закончить. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

10 hours ago, Chudik said:

Это я и так умею. 

Лишний уровень абстракции. Не уверен, что это необходимо. 

И на этом можно закончить. :biggrin:

Вопрос не в умении.
И речь не об  уровене абстракции, а об уровене архитектуры. От архитектуры не убежишь.
Так или иначе все хотят архитектуры, где все разбито по слоям и по модулям. 

Закончить можно, но вопрос не решается.
Azure RTOS как она представлена Microsoft-ом все же голая.  Она юзабельна только если иметь адаптированный аппаратный уровень.  
И Synergy на сегодня единственная открытая платформа такой уровень предлагающая. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...