Jump to content
    

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

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

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

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

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

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

Share this post


Link to post
Share on other sites

1 hour ago, HardEgor said:

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

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

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

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

 

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

 

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

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

 

 

Share this post


Link to post
Share on other sites

1 hour ago, topor_topor said:

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

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

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

Share this post


Link to post
Share on other sites

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

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

 

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

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

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

Share this post


Link to post
Share on other sites

Спасибо за инфу. Как соотносится 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 драйверами?

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...