Easyelectronics.ru

Электроника для всех
Текущее время: 19 фев 2020, 13:35

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



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

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

Зарегистрирован: 13 апр 2019, 14:46
Сообщения: 46
Попробовал в 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
Сообщения: 4039
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
Сообщения: 46
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
Сообщения: 4039
osKernelStart относится к совсем другой операционке (CMSIS-RTOS), а не к FreeRTOS. Или щас что, Cube стал использовать другую операционку?


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

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


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

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


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

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


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

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


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

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


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

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

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


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

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

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

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


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

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 4039
Я дополнил предыдущее сообщение - перечитайте его.
Возможно, ф-ция 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
Сообщения: 1874
А вместо гадания посмотреть код ? Или 5 минут жалко тратить ?


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

Зарегистрирован: 13 апр 2019, 14:46
Сообщения: 46
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
Сообщения: 4039
Да это просто не совсем удачная попытка сделать универсальность и компромисс. Именно поэтому я и не использую ни HAL, ни LL - они универсальны, но усреднены под среднестатистические запросы программиста, и не учитывают разнообразие реальных ситуаций. К тому же, могут приводить к непоняткам из-за банальной перестановки последовательности.


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

Зарегистрирован: 04 окт 2011, 10:19
Сообщения: 1874
__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
Сообщения: 1242
meganom писал(а):
а мне сейчас UART на LL нужно запускать, боюсь представить что меня ждет
Мыши плакали, кололись, но продолжали жевать кактус.


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

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


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


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


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


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

Сейчас этот форум просматривают: Google [Bot]


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

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

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