реклама на сайте
подробности

 
 
> STM32СubeMX и подобные
-AZ-
сообщение Feb 14 2018, 02:36
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 85
Регистрация: 20-09-15
Пользователь №: 88 488



Хотел собрать мнения специалистов, на примере STM32CubeMX.
Все-таки стоит ли применять подобные вещи или это для домохозяек?
При написании больших проектов на чистых С, С++ падает скорость разработки, но пока проверишь используемые ветки HAL, получается тоже не быстро.
Есть ли подводные камни и сложности "ручной" сборки например RTOS, в Cube довольно быстро, но качество неизвестно.
Может применение библиотек производителей, пусть не совсем хороших, не так уж плохо?
Очень интересно мнение тех, кто имеет практический опыт по этой теме.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Professor Chaos
сообщение Feb 25 2018, 13:38
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 60
Регистрация: 25-08-17
Пользователь №: 98 970



По поводу быстродействия кода, написанного с помощью CubeMX, HAL, SPL, а также применения ОС в микроконтроллерах - хороший пример - управление электродвигателями. Вот интересная статья про это. Вот вторая - про отечественный микроконтроллер К1921ВК01Т от НИИЭТ и про решение задачи управления двигателем на нём.
Если коротко, то
Цитата
В-четвертых, никаких операционных систем! Можно предвидеть, как у некоторых в голове крутится мысль «ну раз у вас такая сложная задача, поставьте нормальный микроконтроллер с Linux и пишите под него обычные приложения, обновляя ПО с флешки». Системы управления силовым оборудованием – системы очень жесткого реального времени. Не то что Linux, даже не все специализированные ОС реального времени подходят для таких задач. Например, прерывание АЦП по считыванию и усреднению аналоговых данных может вызываться с частотой до 100кГц. При этом оно будет содержать всего десяток-другой строк кода – сбор данных аналоговых каналов, пара проверок быстродействующих защит и выход – всё, больше ничего не успеть. Если поручить такое прерывание какому-нибудь планировщику задач ОС, то просто его собственное выполнение будет занимать больше ресурсов. Не говоря уже о том, что, в частности, для Linux вместо одной микросхемы МК на плату надо поставить еще две – внешнюю оперативную и флеш-память, отведя на них кучу драгоценных ножек кристалла, использовать шестислойную плату для правильной разводки, получить огромное время загрузки МК (иногда при сбое питания или срабатывании сторожевого таймера надо начать работу раньше, чем двигатель успел остановиться!), иметь проблемы с целостностью файловой системы и прочее.

Цитата
Также есть ряд продуктов, позволяющих «рисовать» программы непосредственно для микроконтроллеров. В том числе тот же Matlab умеет генерировать Си-код для МК именитых брендов на основе модели в Simulink. Якобы можно нарисовать и отладить нарисованную структуру системы управления на компьютере в модели, а потом загрузить в МК – и готово, поехали! И даже такие среды позволяют отлаживать нарисованные структуры управления прямо внутри МК, смотреть переменные и т.п., а на сайтах таких продуктов есть куча демо-проектов для самых сложных систем, «запрограммированных» таким образом. Но так как все реальные проекты до сих пор почему-то программируют «руками», то можно догадаться, что с «рисованием» что-то не так. Но тут даже сложно описать, что именно, когда не так – всё. Главный аргумент против – это отсутствие полного контроля над происходящим внутри МК. Вы нажимаете кнопку в такой среде «сделать хорошо» и надеетесь, что генератор кода сделает за вас всё остальное. Для каких-то простых систем, где производительности МК «за глаза», сроки разработки очень поджимают, а программировать на фирме, которая взялась за проект, никто не умеет… то да, наверное, можно попробовать «нарисовать» программу. Но если она не заработает как надо, или будет иметь какой-то очень специфический глюк, то отладить её уже не будет никакой возможности. А для сложной задачи, где даже при программировании руками с производительностью МК всегда проблемы, рисование не подходит просто по причине нехватки ресурсов – любой язык программирования, чем он более высокоуровневый (куда уж выше рисования), генерирует менее оптимальный машинный код. А низкоуровневые оптимизации, которые сделал бы программист на Си, такая система сделать не сможет (расчет блоков одной структуры с разным тактированием, использование закешированных значений синуса и косинуса, замена функций деления на умножение на заранее подготовленную величину, или совсем уж хитрые вещи типа таких и т.п.).
...
Таким образом, приходится писать свой софт, и писать на Си. И отлаживать свой софт так или иначе надо, и надо на объекте. Наверное, к этому месту статьи все уже поняли, что отладить структуру управления можно только просмотром осциллограмм внутренних переменных, т.е. просмотром графиков во времени, как меняется та или иная переменная на Си – скажем, «выход вот того блока, пятого слева, одновременно с входами третьего справа».
...
И сделать это можно только средствами самого микроконтроллера. Нельзя просто взять и поставить внешний быстрый интерфейс связи и посылать «наверх» значение какой-то переменной, так быстро, как только можно, а уже в системе верхнего уровня строить график. Потому что ни один интерфейс связи МК не успеет сделать это с той частотой, с которой протекают регулируемые переходные процессы. А если успеет, то все ресурсы МК уйдут на обслуживание этого интерфейса связи. Поэтому делают так – записывают осциллограмму в оперативную память МК, просто в массив.

Понятно, что не всегда и не везде так жёстко со временем, но, просто, как один из реальных примеров. Причём не из области военной техники, управления оружием, типа маневрирующей гиперзвуковой боеголовки Ю-71 ракетного комплекса "Сармат" в атмосфере на скоростях 5-7 км/с, или случаев, подлежащих обязательной сертификации. Это обычная промышленная задача, решаемая для управления лифтом, троллейбусом, трамваем, электровозом, карьерным самосвалом или тепловозом с электрической передачей.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- phenixs   STM32СubeMX и подобные   Feb 14 2018, 02:36
- - haker_fox   QUOTE (phenixs @ Feb 14 2018, 10:36) Очен...   Feb 14 2018, 02:54
- - phenixs   Давно уже, гуру рекомендовали не использовать чужи...   Feb 14 2018, 03:03
|- - haker_fox   QUOTE (phenixs @ Feb 14 2018, 11:03) пере...   Feb 14 2018, 04:23
|- - kolobok0   Цитата(phenixs @ Feb 14 2018, 06:03) ...к...   Feb 14 2018, 15:46
|- - AlexandrY   Цитата(phenixs @ Feb 14 2018, 05:03) Хоче...   Feb 17 2018, 13:06
- - pitt   Документация ко всем STM32, с которыми мне приходи...   Feb 14 2018, 04:24
|- - scifi   Цитата(pitt @ Feb 14 2018, 07:24) Докумен...   Feb 14 2018, 04:31
|- - pitt   Цитата(scifi @ Feb 13 2018, 23:31) Люто м...   Feb 14 2018, 12:31
|- - scifi   Цитата(pitt @ Feb 14 2018, 15:31) Рекомен...   Feb 14 2018, 12:36
|- - pitt   Цитата(scifi @ Feb 14 2018, 07:36) Не над...   Feb 14 2018, 15:30
- - phenixs   Вот, ключевые слова - если вас и ваших клиентов на...   Feb 14 2018, 04:33
|- - Quasar   Цитата(phenixs @ Feb 14 2018, 07:33) ... ...   Feb 14 2018, 04:47
- - phenixs   Возможно не стоит содержать свой штат и писать дра...   Feb 14 2018, 04:52
|- - Quasar   Цитата(phenixs @ Feb 14 2018, 07:52) Возм...   Feb 14 2018, 06:37
|- - phenixs   Цитата(Quasar @ Feb 14 2018, 09:37) Не со...   Feb 14 2018, 06:47
- - Jenya7   Категорически против CubeMX. Уж лучше SPL - намног...   Feb 14 2018, 07:12
|- - -AZ-   Цитата(Jenya7 @ Feb 14 2018, 10:12) Катег...   Feb 14 2018, 08:51
|- - Jenya7   Цитата(-AZ- @ Feb 14 2018, 13:5...   Feb 14 2018, 11:44
|- - -AZ-   Цитата(Jenya7 @ Feb 14 2018, 14:44) Мой с...   Feb 14 2018, 11:55
- - amiller   С каждым днём на форуме всё больше вопросов по Cub...   Feb 14 2018, 07:38
- - 0men   применяю HAL, код из куба только для первого ознак...   Feb 14 2018, 09:28
- - Connor   По крайней мере никто не будет спорить что CubeMx ...   Feb 14 2018, 09:39
|- - AHTOXA   Цитата(Connor @ Feb 14 2018, 14:39) По кр...   Feb 14 2018, 13:42
- - -AZ-   Но как разработчик, вы отвечаете за код чем то... ...   Feb 14 2018, 10:55
|- - Connor   Цитата(-AZ- @ Feb 14 2018, 05:5...   Feb 14 2018, 11:25
|- - -AZ-   Цитата(Connor @ Feb 14 2018, 14:25) Ну то...   Feb 14 2018, 11:32
- - sadat   Использую куб как визуализацию распиновки и первич...   Feb 14 2018, 15:30
|- - -AZ-   Цитата(sadat @ Feb 14 2018, 18:30) Исполь...   Feb 14 2018, 16:12
|- - картошка   Цитата(sadat @ Feb 14 2018, 18:30) Исполь...   Feb 21 2018, 07:43
- - mcheb   ЦитатаИспользую куб как визуализацию распиновки и ...   Feb 14 2018, 15:54
- - Aleksandr Baranov   -AZ-. Мне кажется, не стоит задавать таких вопросо...   Feb 14 2018, 20:36
|- - -AZ-   Цитата(Aleksandr Baranov @ Feb 14 2018, 23...   Feb 15 2018, 00:59
- - halfdoom   Куб действительно удобен для начального раскидыван...   Feb 15 2018, 11:15
|- - pitt   Цитата(halfdoom @ Feb 15 2018, 06:15) Куб...   Feb 15 2018, 13:19
|- - Allregia   Цитата(halfdoom @ Feb 15 2018, 12:15) Куб...   Feb 17 2018, 12:30
- - -AZ-   А не лучше ли инициализацию подглядывать в SPL ? И...   Feb 17 2018, 10:19
|- - leocat   Цитата(-AZ- @ Feb 17 2018, 10:1...   Feb 17 2018, 19:03
|- - Baser   Цитата(-AZ- @ Feb 17 2018, 12:1...   Feb 17 2018, 20:12
|- - leocat   Цитата(Baser @ Feb 17 2018, 20:12) ... Бо...   Feb 18 2018, 03:31
|- - Baser   Цитата(leocat @ Feb 18 2018, 05:31) Не пу...   Feb 18 2018, 19:43
- - -AZ-   Вы совершенно правы, речь в разрезе HAL драйверов...   Feb 17 2018, 14:51
- - makc   Подолью масла в огонь: почему-то критика HAL исход...   Feb 17 2018, 20:51
|- - halfdoom   Цитата(makc @ Feb 17 2018, 23:51) почему-...   Feb 18 2018, 05:10
||- - makc   Цитата(halfdoom @ Feb 18 2018, 08:10) Нем...   Feb 19 2018, 13:56
||- - halfdoom   Цитата(makc @ Feb 19 2018, 16:56) Вы хоти...   Feb 20 2018, 08:34
|- - AlexandrY   Цитата(makc @ Feb 17 2018, 22:51) важно н...   Feb 18 2018, 07:26
|- - haker_fox   QUOTE (AlexandrY @ Feb 18 2018, 15:26) У ...   Feb 19 2018, 02:00
|- - AlexandrY   Цитата(haker_fox @ Feb 19 2018, 04:00) Ра...   Feb 19 2018, 17:01
|- - haker_fox   QUOTE (AlexandrY @ Feb 20 2018, 01:01) но...   Feb 20 2018, 08:08
||- - haker_fox   QUOTE (haker_fox @ Feb 20 2018, 16:08) Мн...   Feb 21 2018, 01:04
|- - Эдди   Цитата(AlexandrY @ Feb 19 2018, 20:01) ра...   Feb 21 2018, 04:47
|- - mantech   Цитата(Эдди @ Feb 21 2018, 07:47) Все хор...   Feb 22 2018, 11:39
|- - Эдди   Цитата(mantech @ Feb 22 2018, 14:39) И чт...   Feb 22 2018, 13:21
|- - mantech   Цитата(Эдди @ Feb 22 2018, 16:21) Банальн...   Feb 22 2018, 18:50
|- - Quasar   Цитата(Эдди @ Feb 22 2018, 16:21) // а от...   Feb 22 2018, 20:27
|- - pitt   Цитата(Quasar @ Feb 22 2018, 15:27) Есть ...   Feb 23 2018, 12:29
||- - Quasar   Цитата(pitt @ Feb 23 2018, 15:29) А еще т...   Feb 23 2018, 19:55
||- - mantech   Цитата(Quasar @ Feb 23 2018, 22:55) Какой...   Feb 24 2018, 07:07
||- - pitt   Цитата(Quasar @ Feb 23 2018, 14:55) А лам...   Feb 24 2018, 15:18
||- - Quasar   Цитата(pitt @ Feb 24 2018, 18:18) Следую ...   Feb 24 2018, 18:08
||- - pitt   Цитата(Quasar @ Feb 24 2018, 13:08) Да-да...   Feb 25 2018, 16:03
|- - AlexandrY   Цитата(Quasar @ Feb 22 2018, 22:27) Есть ...   Feb 24 2018, 08:51
|- - Quasar   Цитата(AlexandrY @ Feb 24 2018, 11:51) DR...   Feb 24 2018, 09:32
|- - AlexandrY   Цитата(Quasar @ Feb 24 2018, 11:32) Проек...   Feb 24 2018, 14:45
|- - Quasar   Цитата(AlexandrY @ Feb 24 2018, 17:45) Да...   Feb 24 2018, 15:13
- - golf2109   Дла реализации промышленного проекта STM32F769BI ...   Feb 19 2018, 09:12
- - картошка   STDlib для STM32 более менее приемлемое решение и ...   Feb 20 2018, 12:01
- - juvf   Цитата(phenixs @ Feb 14 2018, 07:36) Все-...   Feb 22 2018, 08:41
- - Эдди   Если исходники скрыты подальше от позора (как, нап...   Feb 22 2018, 20:00
|- - AlexandrY   Цитата(Эдди @ Feb 22 2018, 22:00) Если ис...   Feb 23 2018, 09:49
|- - HardEgor   Цитата(AlexandrY @ Feb 23 2018, 16:49) И ...   Feb 23 2018, 11:06
||- - mantech   Цитата(HardEgor @ Feb 23 2018, 14:06) Хех...   Feb 23 2018, 18:50
|- - Эдди   Цитата(AlexandrY @ Feb 23 2018, 12:49) И ...   Feb 23 2018, 12:09
|- - SSerge   Цитата(Эдди @ Feb 23 2018, 19:09) Мой рун...   Feb 23 2018, 12:44
|- - AlexandrY   Цитата(Эдди @ Feb 23 2018, 14:09) Мой рун...   Feb 23 2018, 12:49
- - Эдди   3) если есть совесть.   Feb 22 2018, 21:10
|- - Quasar   Цитата(AlexandrY @ Feb 23 2018, 12:49) И ...   Feb 23 2018, 11:52
- - Эдди   Я не комментирую то, что не нуждается в комментари...   Feb 23 2018, 12:54
- - rudy_b   На самом деле, именно для процессоров ST, HAL прос...   Feb 23 2018, 14:03
|- - AlexandrY   Цитата(Professor Chaos @ Feb 25 2018, 15...   Feb 25 2018, 13:56
|- - Quasar   ЦитатаЭто обычная промышленная задача, решаемая дл...   Feb 25 2018, 14:11
|- - Aleksandr Baranov   ЦитатаВ-четвертых, никаких операционных систем...   Feb 25 2018, 14:26
- - Professor Chaos   Как-то делал проект в фирме, занимающейся театраль...   Feb 25 2018, 14:37
- - Quasar   Цитата(Professor Chaos @ Feb 25 2018, 17...   Feb 25 2018, 17:58
- - pitt   Цитата(Quasar @ Feb 25 2018, 12:58) А люб...   Feb 25 2018, 19:36
- - Professor Chaos   Цитата(Quasar @ Feb 25 2018, 20:58) мне к...   Feb 25 2018, 21:05
|- - AlexandrY   Цитата(Professor Chaos @ Feb 25 2018, 23...   Feb 25 2018, 21:31
- - juvf   Цитата(Quasar @ Feb 25 2018, 22:58) но мн...   Feb 26 2018, 04:37
- - AlexandrY   Цитата(juvf @ Feb 26 2018, 06:37) Абсолют...   Feb 26 2018, 05:01
|- - juvf   Цитата(AlexandrY @ Feb 26 2018, 10:01) Ск...   Feb 26 2018, 05:29
|- - Quasar   Цитата(juvf @ Feb 26 2018, 08:29) И ПО пи...   Feb 26 2018, 06:53
||- - juvf   Цитата(Quasar @ Feb 26 2018, 11:53) я так...   Feb 26 2018, 08:55
||- - AlexandrY   Цитата(juvf @ Feb 26 2018, 10:55) Свой яз...   Feb 26 2018, 09:28
|- - AlexandrY   Цитата(juvf @ Feb 26 2018, 07:29) Это нав...   Feb 26 2018, 07:17
|- - Quasar   Цитата(AlexandrY @ Feb 26 2018, 10:17) Бо...   Feb 26 2018, 07:27
|- - AlexandrY   Цитата(Quasar @ Feb 26 2018, 09:27) Linux...   Feb 26 2018, 07:41
|- - Quasar   Цитата(AlexandrY @ Feb 26 2018, 10:41) То...   Feb 26 2018, 07:49
- - makc   Цитата(juvf @ Feb 26 2018, 07:37) Абсолют...   Feb 26 2018, 05:01
3 страниц V   1 2 3 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 17:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01498 секунд с 7
ELECTRONIX ©2004-2016