Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Какие есть "библиотеки всего" для STM32 вроде Mbed?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Slash
Здравствуйте!

Какие еще есть библиотеки для работы с микроконтроллерами STM32 вроде MBED?
Легкое подключение RTOS, абстракция IO и периферийных блоков.

Есть библиотека STM32Plus https://github.com/andysworkshop/stm32plus
Кто нибудь пользовался?
Смущает, что ее тянет один человек - надоест ему и бросит ее.
ViKo
Ну, вы, блин, даете! (с)
STM32Cube от самой STMicroelectronics.
AlexandrY
Цитата(Slash @ May 20 2015, 12:14) *
Какие еще есть библиотеки для работы с микроконтроллерами STM32 вроде MBED?
Легкое подключение RTOS, абстракция IO и периферийных блоков.


"библиотеки всего" это видимо библиотека без мануалов и запутанная настолько чтобы нельзя было понять что она содержит.
Так на Github таких море. biggrin.gif
Эдди
Не нужно такое дерьмо. Чем больше универсальности, тем оно тупее и жирнее!!!
Берите libopencm3 в качестве базы, а остальное уже самостоятельно пишите.
SSerge
На первый взгляд выглядит интересно.
Хотя без внятного описания "что делается, каким образом, и почему именно так" читать и разгадывать эти загадки можно долго.
AHTOXA
Вот мой велосипед. Использую вместе с scmRTOS.
(Хотя до "библиотеки всего" пока далековато sm.gif )
inventor
Цитата(Эдди @ May 20 2015, 17:00) *
Не нужно такое дерьмо. Чем больше универсальности, тем оно тупее и жирнее!!!
Берите libopencm3 в качестве базы, а остальное уже самостоятельно пишите.

вчера скачал ее - на вид совсем неплохо.
к сожалению жду новый комп, на старом не получается
ее откомпились (в помойку пора)
Непомнящий Евгений
Цитата(ViKo @ May 20 2015, 13:29) *
STM32Cube от самой STMicroelectronics.


Это ж не библиотека, а просто графический визард для построения стартового кода. А дальше - CMSIS...
ViKo
Цитата(Непомнящий Евгений @ May 21 2015, 09:42) *
Это ж не библиотека, а просто графический визард для построения стартового кода. А дальше - CMSIS...

Что там сначала, что потом... спорить не буду. CMSIS - это же, типа, стандарт, не более.
В проекте, созданном в CubeMX, есть каталоги:
Drivers\CMSIS\...
Drivers\STM32F2xx_HAL_Driver\...
Inc\...
Middlewares\...
Srs\
И это только каталоги верхнего уровня. А внутри еще куча папок.

Я сам противник любых чужих библиотек. Но, чтобы разобраться с USB, вынужден изучать чужие проекты, библиотеки. Вот, сделал Кубом пример USB CDC, ни одной своей функции не написал.
Эдди
Цитата(inventor @ May 21 2015, 09:13) *
вчера скачал ее - на вид совсем неплохо.

А я посмотрел. Очень плохо. Хотя бы то, что эта библиотечка использует SPL! А SPL даже сами STM забросили, т.к. такое количество быдлокода превратить в конфетку просто невозможно!
Взамен SPL они придумали другой образец быдлокодинга: HAL. А чтобы скрыть от пользователя этот ужас, еще и кодогенератор предлагают...
Непомнящий Евгений
Цитата(ViKo @ May 21 2015, 09:52) *
Drivers\CMSIS\...
Drivers\STM32F2xx_HAL_Driver\...
Inc\...
Middlewares\...
Srs\
И это только каталоги верхнего уровня. А внутри еще куча папок.


Надо будет посмотреть. USB я кстати тоже брал у стм-овцев, но не из cube, а отдельно качал. Мне казалось, что cube - просто визард, который генерит стартовый код для запуска кучки библиотек и инцииализации перефирии

AlexandrY
Цитата(Непомнящий Евгений @ May 21 2015, 12:37) *
Надо будет посмотреть. USB я кстати тоже брал у стм-овцев, но не из cube, а отдельно качал. Мне казалось, что cube - просто визард, который генерит стартовый код для запуска кучки библиотек и инцииализации перефирии


Так оно и есть.
Еще в довесок они приплюсовали знаменитую троицу - FATFS, FreeRTOS и LwIP. Но это как бы стандарт, это у всех и так есть.
ViKo
Цитата(AlexandrY @ May 21 2015, 13:54) *
Так оно и есть.
Еще в довесок они приплюсовали знаменитую троицу - FATFS, FreeRTOS и LwIP. Но это как бы стандарт, это у всех и так есть.

В добавок к троице в Cube еще есть и USB_Device всех классов и USB_Host. Middleware - разве ж это не библиотека?
Непомнящий Евгений
Цитата(ViKo @ May 21 2015, 14:04) *
В добавок к троице в Cube еще есть и USB_Device всех классов и USB_Host. Middleware - разве ж это не библиотека?


Библиотечка usb у них отдельная. Cube по ходу таки просто связывает все это вместе.

Качество библиотечки кстати очень так себе. Ожидал много большего, все ж разработчик - крупная контора sm.gif
ViKo
Цитата(Непомнящий Евгений @ May 21 2015, 14:45) *
Библиотечка usb у них отдельная. Cube по ходу таки просто связывает все это вместе.
Качество библиотечки кстати очень так себе. Ожидал много большего, все ж разработчик - крупная контора sm.gif

Отошлю к создателям.
http://www.st.com/web/en/catalog/tools/FM1...c=stm32cube-pr8
Да, очень запутанная, на мой, не слишком опытный, взгляд. Универсальность не идет на пользу компактности.
Но пользоваться какими-то левыми библиотеками не вижу смысла.

Дополню. Случайно набрел, ищу про USB в Cube. Типа, реклама.
http://microsin.net/programming/ARM/stm32cubef4.html
ali00ff
Ну да конечно же HAL + Midleware !
Если не планируете портировать проекты на каконибудь LPC / Samsung и.т.д
то даже думать не чего!

Чирикнул пару строчек и готов аудио плеер
дописал еще пару строк будет и видео,
подравил пару символов и опа - все уже на прерываниях
подправил еще пару и поперло через DMA sm.gif

В CubeMX 1.4 мышкой RTOS настраиваеться
ну да freeRTOS конечно, ну кто мешает пропачить...

Кстати ! под копеечные L0 сделаи HAL !
Случайно наткнулся в Cube под блютус плату для Nucleo

d:\_ST_\NUCLEO-F401RE\x-cube-ble1\X-CUBE-BLE1\Drivers\STM32F4xx_HAL_Driver\Inc\stm32f4xx_hal.h
и тут же под дешевку
d:\_ST_\NUCLEO-F401RE\x-cube-ble1\X-CUBE-BLE1\Drivers\STM32L0xx_HAL_Driver\Inc\stm32l0xx_hal.h

Плюс по заявлению инжинеров ST на форуме e2e
- SPL больше поддерживаться не будет, так что или битмасами по голому CMSIS или HAL !

А если не брезгаете пираткой, очень любите потоки и графику то конечно Keil5 + Midleware PRO + Keil_RTX
http://www2.keil.com/mdk5/learn/usb_host/
Но к сожалению с CubeMX не идеально совместим Keil5, частично ручкам и копипастом придеться инициализацию ваять.
Хотя настраивать потоки, сложную переферию и графику одно удовольствие даже без MXа. (см. видео)
Golikov A.
Цитата
то даже думать не чего!

Чирикнул пару строчек и готов аудио плеер
дописал еще пару строк будет и видео,
подравил пару символов и опа - все уже на прерываниях
подправил еще пару и поперло через DMA


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

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

Так что думать и правда нечегоsm.gif

Я с новым процом начинаю по модульно писать файлы - библиотеку. UART, SPI, и так далее, к 3-4 проекту уже можно из кубиков собирать, сначала может чуть дольше (но не сильно, адаптация куба тоже требует изысканий в мануале, и потому иногда быстрее биты поставить сразу, чем искать их определения), но зато предсказуемо и без тупиков...

Это все, конечно, мое личное мнение!

mantech
Цитата(Golikov A. @ May 22 2015, 07:26) *
Я с новым процом начинаю по модульно писать файлы - библиотеку. UART, SPI, и так далее, к 3-4 проекту уже можно из кубиков собирать, сначала может чуть дольше (но не сильно, адаптация куба тоже требует изысканий в мануале, и потому иногда быстрее биты поставить сразу, чем искать их определения), но зато предсказуемо и без тупиков...

Это все, конечно, мое личное мнение!


Поддерживаю полностью! В таких "кубиках" по крайне мере знаешь, что с чем связано, а в таком аля-cube "программировании" потом черт ногу сломает, неделю назад принесли проект чей-то доработать - так там накубили такого, что пришлось все переделать, увеличить цену заказчику в 2 раза, благо согласился, или отдал бы все обратно - нафиг надо...
inventor
Цитата(Эдди @ May 21 2015, 13:03) *
А я посмотрел. Очень плохо. Хотя бы то, что эта библиотечка использует SPL! А SPL даже сами STM забросили, т.к. такое количество быдлокода превратить в конфетку просто невозможно!
Взамен SPL они придумали другой образец быдлокодинга: HAL. А чтобы скрыть от пользователя этот ужас, еще и кодогенератор предлагают...

не видил что бы они SPL пользовали - они все это переписали заново
Slash
Спасибо за варианты. Пока остановлюсь на том, что генерит STM32CubeMX.
Вопрос к тем, кто им пользуется - вы оставляете структуру папок и в файлах комментарии (USER CODE BEGIN), чтобы добавлять изменения в проект через Cube?

Пока думаю проект, сгенерированный Cube класть под контроль версий, копировать файлы в свой проект со своей структурой.
Если меняю Cube-проект, смотрю на изменения в файлах и руками вношу в свой проект.

Насколько я понял, Mbed - это С++ обертка над STM32Hal.
Думаю, как взять нужные части API из Mbed и использовать их.
К примеру, класс Thread не тянет за собой ничего, можно пользоваться. Правда придется немного переписать реализацию.
Corvus
Цитата(Slash @ May 23 2015, 14:33) *
Вопрос к тем, кто им пользуется - вы оставляете структуру папок и в файлах комментарии (USER CODE BEGIN), чтобы добавлять изменения в проект через Cube?

Да. Как раз, чтоб можно было вносить изменения через Cube.

Цитата(Slash @ May 23 2015, 14:33) *
Пока думаю проект, сгенерированный Cube класть под контроль версий, копировать файлы в свой проект со своей структурой.
Если меняю Cube-проект, смотрю на изменения в файлах и руками вношу в свой проект.

Можно и так, конечно. Только хлопотно. rolleyes.gif
SSerge
Цитата(inventor @ May 23 2015, 13:38) *
не видил что бы они SPL пользовали - они все это переписали заново

Используют.
Там под ворохом классов и темплейтов скрываются вызовы функций из SPL.
_Pasha
biggrin.gif а может проще под SPL положить слой заглушек для выполнения на РС, чтобы они в конце концов генерили правильный текст, но уже для кросс-компиля?
Как в анекдоте "... и вот я снова на Дерибасовской..." rolleyes.gif
AHTOXA
Цитата(SSerge @ May 23 2015, 17:01) *
Используют.
Там под ворохом классов и темплейтов скрываются вызовы функций из SPL.

Насколько я понял, вы о разных либах говорите. Вы (и Эдди) - про STM32Plus, а inventor - про libopencm3.
ViKo
Цитата(ali00ff @ May 22 2015, 05:35) *
А если не брезгаете пираткой, очень любите потоки и графику то конечно Keil5 + Midleware PRO + Keil_RTX
Но к сожалению с CubeMX не идеально совместим Keil5, частично ручкам и копипастом придеться инициализацию ваять.

С помощью Кейловской Middleware я не смог создать проекта с USB ни под какую из плат Discovery, вечно чего-то не хватает. А Кубом с его Middleware и HAL - запросто.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.