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

STM32: регистровый CMSIS или высокоуровневый HAL ?

22 минуты назад, topor_topor сказал:

Зачем использовать микс ?

Выходит нет смысла использовать CMSIS (а это немного сложнее) так как нужные драйвера всё равно в HAL....

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

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

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


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

1 hour ago, HardEgor said:

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

Как я вижу в драйвере USB, HAL как раз и использован как наслоение над CMSIS с целью изоляции особенностей архитектуры.

А не наоборот добавлен CMSIS с целью ускорить работу. Это не понятно.

Ещё CMSIS использован как интерфейс к RTOS.  Видимо чтобы от конкретной RTOS отвязать драйвер. Это понятно.

 

Выходит к RTOS и битам USB полезли через CMSIS, а к апликейшену через HAL....

 

В общем, запутал меня ST :(

Это что нормально лепить всё в кучу?

 

 

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


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

1 hour ago, topor_topor said:

В общем, запутал меня ST :(

Это что нормально лепить всё в кучу?

Нет конечно.
У ST всегда был низкокачественный софт. Ну не спецы они, делают им софт разные команды по аутсорсу.
Более продвинутые производители уже давно купили себе полные софтварные платформы, кто uC/OS, кто MQX, кто ThreadX  
И только ST топчет все ту же убогую FreeRTOS с lwip. Ждет видимо пока Amazon не отберет у них права на FreeRTOS или пока не отделит в другую ветку, а старая FreeRTOS загнется. 
Посмотрите в сторону Renesas Synergy и ThreadX. Там такого бардака не будет.
От CMSIS там только DSP библиотека, которая одна и имеет ценность во всем CMSIS-е.

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


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

10 часов назад, topor_topor сказал:

В общем, запутал меня ST :(

 

Это что нормально лепить всё в кучу?

Вы кроме исходников что-то еще смотрели? На SPL (был до HAL) была хорошая документация, раскрывающая архитектуру (с картинками).

Например, эта в начале многое по архитектуре HAL/LL определяет.

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


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

Спасибо за инфу. Как соотносится HAL\LL и CMSIS видно рисунке:

image.png.88b7fe233ce1092d763ffdf30d3629c1.png

Для переносимости рекомендуют HAL, для тех кому нужны детали железа LL.

CMSIS  в принципе и не надо.

Кроме того микс HAL и LL даже рекомендуется ST.

Похоже что мешать все API в один исходник вполне приемлемо....

 

==================================================

 

Остался вопрос не совсем по теме но всё-таки

Какой язык на сегодня наиболее популярен в ембедыд - C или C++?

HAL\LL и CMSIS єто чисто C. Хотя все соурсы включают external C для линковки с  C++.

 

Про обертки C++ поверх RTOS читал.

А есть ли обертки или примеры как использовать C++ с HAL\LL драйверами?

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


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

On 11/5/2015 at 2:33 PM, AlexandrY said:

А в курсе что только из-за GCC вы убиваете почти половину производительности процессора?

можно поподробнее? спасибо

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


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

как упомянул topor_topor между CMSIS и HAL есть промежуточный вариант - LL который я нашел вполне приемлимым и пользуюсь им.

 

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


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

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

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

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

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

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

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

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

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

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