Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/25: Рейтинг темы: голосов - 25, средняя оценка - 4.52
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
1

Библиотеки Low Layer (LL)

26.10.2018, 15:03. Показов 4521. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
По воле случая мне в руки попадет несколько платок STM32L476-DISCO. До этого я обходился CMSIS+SPL. HAL не заходит никак. Как я понял SPL для серий F4+/L1+ уже нет, отказались от него. Однако st видимо вняли воплям разработчиков об ардуионоподобности HAL и запилили библиотеку Low-layer(LL), где сами анансируют, высокую производительность и высокую гибкость управления периферией. Однако на просторах как то скудно с примерами. Никто не юзает данный прибамбас на постоянке? Мб поделитесь с чем его едят, на первый взгляд это очень похожу на SPL...где подвох?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2018, 15:03
Ответы с готовыми решениями:

FreeRTOS и LL (Low Layer Drivers) совместимы?
Попробовал в CubeMX создать проект для STM32F103VB на FreeRTOS, но использовать библиотеку LL а...

Как сделать полосу прокрутки в теге <layer></layer>?
Браузер NN. Нужно сделать полосу прокрутки слоя, как? Желательно показать кодом! Заранее...

Layer
Всем привет! У меня вот какой вопрос.... можно ли программно создать слой с полем и изменять...

Layer Vs Dialog
Наткнулся на тему - http://dpastov.blogspot.ru/2007/06/some-da...-showed-me.html. *One of the main...

Layer 2 loopback
Сам я в кодинге не особо подкован. Потому прошу помощи. Стоит задача следующего характера: 1)...

6
16 / 16 / 1
Регистрация: 20.10.2013
Сообщений: 81
29.10.2018, 18:02 2
Как я понимаю, изначально использование SPL, было довольно удобно. Спустя немного времени использования SPL, компания ST начала замечать что это нравиться пользователям, так как значительно уменьшает порог вхождения, да и вообще удобно, и быстро. Так у них родилась идея разработки HAL. HAL значительно ускорял разработку, но также значительно тормозил программу.

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

Как по мне это обычный SPL, только его можно генерировать через CubeMx.

P.S.
Цитата Сообщение от _SayHello Посмотреть сообщение
До этого я обходился CMSIS+SPL.
Кстати HAL тоже использует CMSIS. Схема такая же: CMSIS+HAL, ну или CMSIS+LL
0
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
29.10.2018, 20:05  [ТС] 3
shepard127, голый cmsis меня не устраивает, как и в купе с халом. На голом cmsis уж больно плохо читается программа, хотя иногда бывает достаточно уместным. Буду разбираться в ll. Думал, может кто уже более менее проект на нем сделал и поделится впечатлениями. В инете практически не нашёл примеров кода, кроме примеров от производителя
0
SD
0 / 0 / 0
Регистрация: 22.07.2012
Сообщений: 7
08.02.2019, 09:03 4
Как продвинулись нашли что???
0
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
08.02.2019, 09:24  [ТС] 5
SD, инфы особо не нашел, нашел баги причем достаточно тупые и плохоотлаживаемые, ну по крайней мере в той части где я копался. Большинство так называемых функции - макросы. В принципе если писать проект с 0 на LL то наверное можно, если сгенерировать в кубе проект на LL то скорее всего придется перештудировать все что нагенерировал куб.
Баги которые я нашел при генерации с LL:
1) Не запускаются прерывания системного таймера. При генерации через HAL все работает. Насколько я помню, лечится включением вручную бита TICKINT.
2) Не будет работать работать сгенерированный USART в режиме IrDA. Под HAL все работает. Причина: USART имеет структуру параметров, в режиме IrDA нужна только часть параметров, поэтому остальные любезно не инициализируются генератором, видимо он предполагает, что компилятор автоматом их проставит в 0. Но функция инициализации ест эту структуру во всех режимах полностью, а так как она обьявляется локально и находится в стеке, который сам себя не чистит, то в неинициализированных полях структуры появляется всякий мусор, который портит всю настройку. Решение: инициализировать явно все поля структур периферий, даже те которые не нужны. Вообще это должно быть правилом хорошего тона, но видимо не у программистов ST.
Так что не удивляйтесь если сходу после генерации на LL, что то работать не будет. Придется отладчиком полазить, возможно ошибка не у вас.

А так, побаловался немного, но проектов серьезных не стал пока писать на LL. Потрогал только I2C, USB CDC, USART, USART_IrDA, ну пару режимов таймеров.

Добавлено через 4 минуты
А да кстати, еще баг или фича не знаю, если генерировать проект под USB CDC, что под LL, что под HAL он упорно не хочет добавлять хидер "usbd_cdc_if.h" в котором собственно и описаны функции приема отправки.
Хз почему так, но без добавления в main функцию отправки юзать не получится.
0
SD
0 / 0 / 0
Регистрация: 22.07.2012
Сообщений: 7
08.02.2019, 10:23 6
Переход от HAL к LowLayer
пропущу инициализацию.
есть строчки кода:
HAL_ADC_Start_DMA(&hadc1,(uint32_t*)&val,1);
HAL_DAC_Start_DMA(&hdac, DAC_CHANNEL_1,(uint32_t*)&val,1,DAC_ALIGN_12B_R);
работают изумительно.
как будет выглядеть аналог этих строк в LowLayer???
инициализация для LL сделана, интересует только этот фрагмент.
а вот на это не подскажите???
0
874 / 535 / 175
Регистрация: 30.07.2015
Сообщений: 1,739
08.02.2019, 10:46  [ТС] 7
SD, я вас огорчу аналога этой строки в LL нет, на то он и Low layer (низкий уровень). Вам придется самому написать настройку связок ADC+DMA, DAC + DMA и просто включить модули

Добавлено через 58 секунд
Чтобы понять что написано в халовских функциях надо туда заглянуть и повторить подобное на LL
0
08.02.2019, 10:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2019, 10:46
Помогаю со студенческими работами здесь

layer 2 и laye3
всем привет! специалисты! прошу объяснить а чем отличие между управляемым коммутатором layer 2 и...

коммутатор layer 3
Посоветуйте коммутатор layer 3 для организации доменной сети кол-вом примерно 10 доменов и...

Правильная установка Layer
Привет ребята есть такая проблемка. Сушествует n- количество спрайтов с фигурами, инициализация все...

hardware ABSTRACTION layer ?
Т.е. по настоящему abstraction - платформенно-независимый - годный и для cortex-ов, и для avr-ок, и...

Паттерн Service Layer на с++
Помогите реализовать паттерн Service Layer на с++ - я уже где только не искал- но на с++ не нашел...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru