Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.86/403: Рейтинг темы: голосов - 403, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 153
1

SPL и HAL для STM32 - зло или благо? (Холивар)

10.02.2015, 22:12. Показов 78550. Ответов 158
Метки нет (Все метки)

У меня - нейтральное отношение к данным библиотекам.
Однако некоторым они позволяют облегчить "вхождение", кто-то - не может без них.
А есть и те, кто считает - это зло, "говнокод" и т.д.
Предлагаю аргументированно высказать своё мнение. Это позволит многим взглянуть на данные библиотеки под другим углом зрения. И принять правильное, своё мнение использовать из или нет.

Исправлено название темы.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2015, 22:12
Ответы с готовыми решениями:

STM32 HAL+SPL
Добрый день, подскажите возможно ли код из CubeMX впихать на SPL

CubeMX, HAL, LL libs, SPL(rip) etc. на чем остановиться?
Решил перейти на новый мк stm32l4 и для него уже нет SPL, но есть HAL, LL и по старинке можно...

Есть ли примеры по HAL для stm32?
Возьмем как пример таймер. Самый простой режим. Считает до значения TIMx_ARR. После этого...

UART, HAL, stm32
Здравствуйте, только недавно узнал о существовании библиотеки HAL. Решил попробовать отправлять по...

158
1 / 1 / 0
Регистрация: 07.02.2106
Сообщений: 4,013
10.02.2015, 22:18 2
Вот посмотри к чему приводит любовь к оберткам, стиль SPL и КАЛ и что вытворяют "умелые" руки https://github.com/MaJerle/stm32f429
0
0 / 0 / 0
Регистрация: 03.11.2014
Сообщений: 153
10.02.2015, 22:31 3
dosykus_2
Как понял - это ссылка на то, как писать не надо.
А можно тогда аналогичную ссылку на то, как надо писать.
Такой понятный и красивый пример с CMSIS.
0
1 / 1 / 0
Регистрация: 07.02.2106
Сообщений: 4,013
10.02.2015, 22:33 4
http://kazus.ru/forums/showthread.php?t=107109
См. посты nahimovv
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,233
10.02.2015, 22:34 5
пора переезжать в валхаллу прям с первого же сообщения:)
0
1 / 1 / 0
Регистрация: 07.02.2106
Сообщений: 4,013
10.02.2015, 22:35 6
Ymk +100500
0
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,406
10.02.2015, 23:14 7
Ненужно — оно и в Африке ненужно. А эти SPL/HAL/cube напоминают ардуйню и бубунту: первая создана для того, чтобы ГСМу внушить, что он электронику знает; вторая — чтобы внушить ГСМу, будто он умеет на компьютере работать...
0
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,406
10.02.2015, 23:16 8
Цитата Сообщение от dosykus_2
Вот посмотри к чему приводит любовь к оберткам, стиль SPL и КАЛ и что вытворяют "умелые" руки https://github.com/MaJerle/stm32f429
Это жесть! Оно еще и в КаЛе сделано… Ох уж эти вантузятники…
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 886
10.02.2015, 23:25 9
А можно коментарии какие-то кроме общих фраз ?
0
1 / 1 / 0
Регистрация: 09.02.2012
Сообщений: 693
10.02.2015, 23:31 10
В третьем топике опять начат срачь! Пора прекращать этот маразм.
0
1 / 1 / 0
Регистрация: 07.02.2106
Сообщений: 4,013
10.02.2015, 23:34 11
x893, а скачать и заценить? :))))
Этот фокусник обернул SPL в свои обертки ...
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 886
11.02.2015, 00:38 12
Цитата Сообщение от dosykus_2
x893, а скачать и заценить? :))))
Этот фокусник обернул SPL в свои обертки ...
Ну я посмотрел - ничего особенного
Так ему удобнее значит.
Наблюдаю жаркие дискуссии, но не видел простого примера
с левой стороны как не надо а с правой стороны как надо.
Что бы начинающему типа меня было проще понять правильность пути.
0
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
11.02.2015, 00:51 13
Хотите посмотреть на то, как надо - посмотрите на поддержку STM32 у Keil. И да, кстати - эти библиотеки там используются.

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

Такие библиотеки довольно хороши с точки зрения быстроты разработки и поддержки кода. Но у STM они не блещут особенным удобством, что ими пользоваться, что напрямую - особенной разницы нет, просто разные вещи запоминать надо. Есть производители, у которых HAL гораздо лучше. А у некоторых TI библиотеки вообще в ROM - вот это правильный подход.

А самый правильный подход - у Cypress.

А вообще, привыкайте постепенно использовать библиотеки производителя. Чипы становятся сложнее, появляются всякие BLE и прочие IoT со сложными протоколами, там без библиотек - никуда. Ручками рулить всем этим и строить КА под все протоколы замудохаетесь. Как в свое время стал неактуальным ассемблер, так и прямой доступ к периферии тоже устаревает потихоньку.
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 886
11.02.2015, 01:13 14
Опять одна вода и ссылки в никуда.
Дайте реальных примеров в виде примера программы (а не ссылок на Keil, CoCox, TI, и т.д. т.п.).
10-15 строк кода в правильном написании и тоже в неправильном.
0
1 / 1 / 0
Регистрация: 30.08.2010
Сообщений: 3,379
11.02.2015, 01:24 15
Щаззз... делать больше нечего, только за вас искать код и сюда его постить. Совсем обленились, что-ли?

Носом ткнули куда надо - и довольно с вас.
0
0 / 0 / 0
Регистрация: 07.02.2106
Сообщений: 886
11.02.2015, 01:28 16
STM32 у Keil
Это что конкретно имелось ввиду ?
STM32F1xx_DFP
ARM\Boards\Keil\MCBSTM32F200
В общем - просто бессмысленная трата времени в этих дискуссиях.
Резюме простое - пиши как нравится и меньше слушать советчиков.
0
0 / 0 / 0
Регистрация: 16.04.2010
Сообщений: 767
11.02.2015, 06:42 17
Тему сразу в Valhallу снести.
0
0 / 0 / 0
Регистрация: 21.11.2012
Сообщений: 1,406
11.02.2015, 09:45 18
Цитата Сообщение от x893
10-15 строк кода в правильном написании и тоже в неправильном.
Вот - правильно:
Код
   DMA1_CCR7 = DMA_CCR_DIR | DMA_CCR_MINC | DMA_CCR_PSIZE_16BIT | DMA_CCR_MSIZE_16BIT
| DMA_CCR_TEIE | DMA_CCR_TCIE | DMA_CCR_PL_HIGH;
А вот - неправильно:
Код
dma_set_read_from_memory(DMA1, DMA_CHANNEL7);
dma_enable_memory_ymsrement_mode(DMA1, DMA_CHANNEL7);
dma_set_peripheral_size(DMA1, DMA_CHANNEL7, DMA_CCR_PSIZE_16BIT);
dma_set_memory_size(DMA1, DMA_CHANNEL7, DMA_CCR_MSIZE_16BIT);
dma_enable_transfer_error_interrupt(DMA1, DMA_CHANNEL7);
dma_enable_transfer_somplete_interrupt(DMA1, DMA_CHANNEL7);
и так далее...

Второй случай тупо не работает из-за того, что пока все эти функции повызываются, выскакивает левый импульс и аппаратный 1-wire идет коту под сраку!
А в правильном написании все в порядке.
0
1 / 1 / 0
Регистрация: 07.02.2106
Сообщений: 4,013
11.02.2015, 09:51 19
Цитата Сообщение от x893
Ну я посмотрел - ничего особенного
Так ему удобнее значит.
Что значит "так удобней" ?
Ты не понял сути, если пациент взялся обернуть, расхваленную SPL , значит она его не устраивает.
В то время как адепты преподносят либу как самодостаточную , удобочитаемую и вааааще .
Вот только обернул он в том же стиле что и сама SPL ,вот и получилось г...о в кубе
0
TiimTik
11.02.2015, 12:02 20
Вопрос актуальный для начинающих. Пытался его здесь поднять - внятно ничего не понял.

Вот пришли мне платы нуклео и дисковери. Сажусь я их осваивать.

В вебе все примеры с SPL, на сайте STM предлагают HAL. В этой теме как я понимаю злом считают и то и другое.

Полная каша. Кто прав?!

А что использовать если не SPL/HAL? Работать без библиотек, напрямую с регистрами?

Если так, то есть ли какие-то обучающие/образцово показательные примеры такого подхода?
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2015, 12:02

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Stm32 без HAL
Всех приветствую! Всех с Новым Годом! Решил поиграться с stm32. Имеется Board Nucleo-64 с...

STM32, HAL & ADC
Подскажите, в чем проблема в следующем коде инициализации и вывода значений АЦП? Проект успешно...

MLX90614 + STM32 i2c hal
Доброго времени суток. Возникла загвоздка в попытке оживить ИК термодатчик MLX90614 по y2s....

Stm32 HAL OLED WH1602
Всем Добрый день, не могу подключить lcd делаю все как на примере указана только пины другие ссылка...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.