Easyelectronics.ru

Электроника для всех
Текущее время: 14 окт 2019, 16:51

Часовой пояс: UTC + 5 часов



JLCPCB – Прототипы печатных плат за $2/10pcs (Любой цвет!)
Крупнейший производитель печатных плат и прототипов. Более 600000 клиентов и свыше 10000 заказов в день!
Получите скидку на почтовую отправку при первом заказе в JLCPCB!

Начать новую тему Ответить на тему  [ Сообщений: 18 ] 
Автор Сообщение
 Заголовок сообщения: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 14:56 
Только пришел

Зарегистрирован: 13 апр 2019, 14:46
Сообщения: 23
Попробовал в CubeMX 5.1.0 создать проект для STM32F103VB на FreeRTOS, но использовать библиотеку LL а не HAL . И ничего не работает , задачи не запускаются, элементарное переключение светодиода не работает. Даже не знаю куда смотреть , по LL и FreeRTOS информации мало, может они не совместимы или нужна какая то дополнительная настройка в отличии от HAL.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 16:01 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
RTOS никак не связана c LL. Это две разные вещи. И если что-то у вас не работает, значит вы что-то не так делаете.
А информации по FreeRTOS - валом. Начиная от русскоязычного руководства от Андрея Курница, написанного еще лет 8 назад, и заканчивая англоязычным полным мануалом с примерами на сайте https://www.freertos.org/Documentation/RTOS_book.html
про LL - тоже есть мануал, лежит на сайте st.com


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 16:36 
Только пришел

Зарегистрирован: 13 апр 2019, 14:46
Сообщения: 23
BusMaster писал(а):
RTOS никак не связана c LL. Это две разные вещи. И если что-то у вас не работает, значит вы что-то не так делаете.
А информации по FreeRTOS - валом. Начиная от русскоязычного руководства от Андрея Курница, написанного еще лет 8 назад, и заканчивая англоязычным полным мануалом с примерами на сайте https://www.freertos.org/Documentation/RTOS_book.html
про LL - тоже есть мануал, лежит на сайте st.com


Да все я сделал как всегда , только сменил в CubeMX HAL на LL. Все, после этого выполняется все до osKernelStart(); дальше тишина. Что глянуть, что проверить?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 17:02 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
osKernelStart относится к совсем другой операционке (CMSIS-RTOS), а не к FreeRTOS. Или щас что, Cube стал использовать другую операционку?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 17:24 
Заглядывает иногда

Зарегистрирован: 03 фев 2019, 06:33
Сообщения: 45
В кубе через одно место вызывается фриртос,ручками подключите ее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 17:47 
Только пришел

Зарегистрирован: 13 апр 2019, 14:46
Сообщения: 23
Вроде заработало . Получается я хотел чтобы GPIO и USART были на LL а RCC осталось на HAL . При такой комбинации задачи FreeRTOS не стартовали, создал новый проект и везде поставил LL , задачи начали запускаться. Хрень какая то .


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 17:55 
Только пришел

Зарегистрирован: 13 апр 2019, 14:46
Сообщения: 23
Блин , теперь новая проблема появилась , при старте МК на портах кратковременно появляется низкий уровень а затем становится заданный высокий.В HAL такого не было , МК стартовал с заданного уровня.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 18:32 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
Как пишете - так и получаете.
Вы спрашивали про литературу - я дал ссылки и указатели на литературу. Читайте, просвещайтесь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 18:54 
Только пришел

Зарегистрирован: 13 апр 2019, 14:46
Сообщения: 23
Библиотека LL для моего МК явно кривая . В MX_GPIO_Init задается высокий уровень на выходах порта D на пинах 13,14,15. После функции MX_GPIO_Init там выставляется вопреки всему низкий уровень , и только потом я принудительно перевожу их в высокий уровень. Это жесть.


Вложения:
deb.jpg
deb.jpg [ 201.92 Кб | Просмотров: 640 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 19:07 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
Ну быть может, прежде чем обвинять в кривизне библиотеку, стоит еще раз внимательно прочесть написанный текст проги? Это не сарказм, это правда, подтвержденная на собственном опыте и опыте других человеков. Большинство ошибок - мы допускаем сами. И лишь когда стопроцентно и стопудово убедились, что мы нигде не ошиблись и поняли всё правильно, то тогда можно засомневаться в правильности сторонних библиотек.

В частности, для F103 из-за его особенности, LL может быть написан так, что при инициализации порта он затрагивает регистр ODR, отвечающий за выходной уровень, а так же за состояние подтяжек, если это вход.
Вобщем, сначала инициализуем направление порта, а затем выставляем уровень на выходе. Да, иногда это будет мешать. Но это общая проблема кодогенератора CubeMX - у него все не как у людей.


Последний раз редактировалось BusMaster 13 апр 2019, 19:14, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 19:12 
Только пришел

Зарегистрирован: 13 апр 2019, 14:46
Сообщения: 23
BusMaster писал(а):
Ну быть может, прежде чем обвинять в кривизне библиотеку, стоит еще раз внимательно прочесть написанный текст проги? Это не сарказм, это правда, подтвержденная на собственном опыте и опыте других человеков. Большинство ошибок - мы допускаем сами. И лишь когда стопроцентно и стопудово убедились, что мы нигде не ошиблись и поняли всё правильно, то тогда можно засомневаться в правильности сторонних библиотек.

Тогда объясните мне то что я вижу в отладчике и на самой плате.Где кривизна если все настройки проводит библиотека LL? На одном скрине попытка выставить высокий уровень , на другом скрине попытка выставить низкий уровень .Результат один , после выхода из функции MX_GPIO_Init там низкий уровень и только потом я его перевожу в низкий , как так ?


Вложения:
pin2.png
pin2.png [ 87.15 Кб | Просмотров: 629 ]
Комментарий к файлу: В MX_GPIO_Init выставлен высокий уровень , и что мы видим при выходе из функции в регистре?Низкий уровень
pinout1.png
pinout1.png [ 76.03 Кб | Просмотров: 630 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 19:18 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
Я дополнил предыдущее сообщение - перечитайте его.
Возможно, ф-ция LL_GPIO_Init затрагивает регистр ODR, который записывается ф-цией LL_SetOutputPin. Происходит взаимное повреждение предыдущих записанных данных. Такова концепция целиком всего CubeMX.
Я не пользуюсь всякими этими прибамбасами, как раз по причине непредсказуемого и сложноугадываемого поведения, поэтому лишь предполагаю, и думаю, что недалек от истины.
Поменяйте местами строчки LL_SetOutputPin и LL_GPIO_Init для PORTD

ЗЫ. Подробнее посмотрел скрины. Хм. А как зовется полностью ваш микроконтроллер? Полное его название?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 19:26 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1762
А вместо гадания посмотреть код ? Или 5 минут жалко тратить ?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 19:28 
Только пришел

Зарегистрирован: 13 апр 2019, 14:46
Сообщения: 23
BusMaster писал(а):
Я дополнил предыдущее сообщение - перечитайте его.
Возможно, ф-ция LL_GPIO_Init затрагивает регистр ODR, который записывается ф-цией LL_SetOutputPin. Происходит взаимное повреждение предыдущих записанных данных. Такова концепция целиком всего CubeMX.
Я не пользуюсь всякими этими прибамбасами, как раз по причине непредсказуемого и сложноугадываемого поведения, поэтому лишь предполагаю, и думаю, что недалек от истины.
Поменяйте местами строчки LL_SetOutputPin и LL_GPIO_Init для PORTD

ЗЫ. Подробнее посмотрел скрины. Хм. А как зовется полностью ваш микроконтроллер? Полное его название?


Спасибо, перестановка местами помогла , сперва LL_GPIO_Init(GPIOD, &GPIO_InitStruct); а потом уже LL_GPIO_SetOutputPin(GPIOD, LL_GPIO_PIN_13|LL_GPIO_PIN_14|LL_GPIO_PIN_15);. Ну это же явный косяк библиотеки , и это я только с GPIO столкнулся, а мне сейчас UART на LL нужно запускать, боюсь представить что меня ждет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 19:33 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 3643
Да это просто не совсем удачная попытка сделать универсальность и компромисс. Именно поэтому я и не использую ни HAL, ни LL - они универсальны, но усреднены под среднестатистические запросы программиста, и не учитывают разнообразие реальных ситуаций. К тому же, могут приводить к непоняткам из-за банальной перестановки последовательности.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 13 апр 2019, 20:39 
Старожил
Аватара пользователя

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1762
__HAL_RCC_GPIOD_CLK_ENABLE();
LL_GPIO_SetOutputPin(...);
LL_GPIO_Init(...);
И никакой магии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 14 апр 2019, 14:03 
Старожил
Аватара пользователя

Зарегистрирован: 13 янв 2018, 21:36
Сообщения: 993
meganom писал(а):
а мне сейчас UART на LL нужно запускать, боюсь представить что меня ждет
Мыши плакали, кололись, но продолжали жевать кактус.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: FreeRTOS и LL (Low Layer Drivers) совместимы?
СообщениеДобавлено: 22 апр 2019, 14:59 
Старожил
Аватара пользователя

Зарегистрирован: 01 ноя 2011, 23:51
Сообщения: 821
BusMaster писал(а):
Ну быть может, прежде чем обвинять в кривизне библиотеку, стоит еще раз внимательно прочесть написанный текст проги? Большинство ошибок - мы допускаем сами. .


Ваши слова да Богу в уста!! Как это часто подтверждается!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 18 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB