Jump to content

freeRTOS, не получается скомпилировать пустой код


Recommended Posts

здравствуйте! пытаюсь запустить freeRTOS на чипе F105RBT6 и плате нуклео H743ZI2. собираю как делают чуваки с ютуба: в middlewire ставлю CMSIS v.1 или v.2 (по-разному пробовал), systick меняю на любой другой таймер, из GPIO выбираю 1-2 ноги (чтоб запустить 2 блинка параллельно и потестить), пробовал эту штуку -> USE_NEWLIB_REENTRANT ставить в энейбл/дисейбл. собирается код, а когда его компилирую вываливаются такие ошибки.
567589385_.png.b40a092c27f6a0819187fe9de298d364.png
на сайте freertos.org можно скачать zip-архив со всякими штуками, но куда их пихать (и надо ли это для cube IDE) непонятно. помогите пожалуйста

Link to comment
Share on other sites

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

9 часов назад, Стальной сказал:

Русских букв нет в путях к файлам?

Можно проект выгрузить сюда?

RTOS.zip
Не, русских нет. Проходили уже, при первоначальном освоении куба, все снес и специально поставил в самый корень)
C:\ST\STM32CubeIDE_1.9.0\PROJECTS\RTOS
Есть еще тут
C:\Users\Я\.stm32cubeide\.eclipse.mx\.log.txt
По этому пути есть буква "Я", но там тхт-файлы, не системные. По всему остальному функционалу куба жаловаться не на что - прогает без проблем.

Link to comment
Share on other sites

Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. 

Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств. Подробнее параметры и результаты тестов новой серии PLM по ссылке.

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

Самый просто способ все скомпилить - выкинуть нафиг убожество под названием куб и поставить Keil или VisualStudio. Кроме этого никогда не использовать HAL и SPL. Сразу после этого все проблемы с компиляцией пропадут.

12 часов назад, Андрей Гараж сказал:

systick меняю на любой другой таймер

Чта? Он должен висеть строго на одном таймере, а именно SysTick.

 

12 часов назад, Андрей Гараж сказал:

вываливаются такие ошибки.

Ну так там написано чего не хватает. В чем проблема?

 

12 часов назад, Андрей Гараж сказал:

можно скачать zip-архив со всякими штуками, но куда их пихать

А прочесть инструкцию, которых в инете пруд пруди религия не позволяет? Или лень?

 

12 часов назад, Андрей Гараж сказал:

чуваки с ютуба

Учиться по ютьюбу самое худшее, что можно придумать...

Link to comment
Share on other sites

Как измерить внутреннее сопротивление литиевого аккумулятора. Измеряем правильно

Внутреннее сопротивление – один из наиболее значимых параметров, от которого напрямую зависят другие характеристики литиевого аккумулятора. От этого параметра зависят такие характеристики источника питания, как напряжение на выходе под нагрузкой, максимальный выходной ток и коэффициент полезного действия (КПД). Рассмотрим как измерить действительное значение внутреннего сопротивления АКБ, используя определенные методики. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

45 минут назад, BARS_ сказал:

Ну так там написано чего не хватает. В чем проблема?

там написано, и даже создается папка middleware, в которой есть эти файлы. но почему он их не подхватывает, если сам же и создает? да и если по очереди, включать каждую папку из этой папки в проект принудительно (ПКМ -> Add/remove include path) в итоге вываливается в ошибку, что компилятор не понимает что такое osDelay();
 

Link to comment
Share on other sites

12 минут назад, Андрей Гараж сказал:

компилятор не понимает что такое osDelay();

Я же говорю, выкинь нафиг куб и все эти бестолковые прослойки типа cmsis_os. Нафиг они там нужны? Чтобы вместо vTaskDelay() писать osDelay? И смысл? Лишнее время тратить на вызов лишней функции-оболочки? Тем более в документации на RTOS будет описание родных функций ОС, без всяких прослоек.

 

14 минут назад, Андрей Гараж сказал:

но почему он их не подхватывает, если сам же и создает?

Да по тому, что это Eclipse, а он кривой.

Link to comment
Share on other sites

43 минуты назад, Alex сказал:

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

Куб сам настраивает

1 час назад, BARS_ сказал:

Он должен висеть строго на одном таймере, а именно SysTick.

 

Нет, если работает freertos

Link to comment
Share on other sites

HAL ни от чего не работает. Это тупой набор оберток на стандартными регистрами. Бессмысленный и беспощадный. Да, он там дает что-то вроде _delay_ms(), что в RTOS вообще не нужно.

Edited by BARS_
Link to comment
Share on other sites

@BARS_ Нет, таймер нужен, по нему считаются задержки. И он не такой уж и бессмысленный, если им правильно пользоваться.298239249_.thumb.jpg.0dffe46b2ebdd514c03d9de1dba7ba96.jpg

@Андрей Гараж  вот чистый проект, есть файлы под CubeIDE и IAR. Я проверил в  IAR, собирается.

https://disk.yandex.ru/d/ewdoqTdoNSHT7Q

Edited by Стальной
Link to comment
Share on other sites

2 минуты назад, Стальной сказал:

Нет, таймер нужен, по нему считаются задержки.

Для RTOS они НЕ нужны. У RTOS для этого есть vTaskDelay() и свой системный таймер.

 

3 минуты назад, Стальной сказал:

И он не такой уж и бессмысленный

Более чем бессмысленный. Из минусов

  1. Огромная куча лишнего кода большая часть которого тупо проверяет, а туда ли программист пытается поставить бит.
  2. Огромная куча лишних файлов.
  3. Малейшее отсутствие возможности проверить настройки регистров по даташиту.
  4. Огромная куча лишнего когда при настройке периферии. Например, вот так выглядит настройка целого порта без HAL:
	GPIOB->MODER = 1<<30 | 1<<28 | 1<<26 | 1<<24 | 1<<22 | 1<<18 | 1<<16 | 1<<10 | 1<<8 | 1<<6 | 1<<2 | 1<<0;

Одна строка кода. И еще по одной на OTYPER и OSPEEDR. А HAL сколько страниц кода на этой займет? Аналогично в 3-5 строк настраивается большая часть интерфейсов. Плюс в HAL и SPL полно багов. А главное, на настройке МК вся работа HAL заканчивается. Ибо с интерфейсами он работает медленно, т.к. та же отправка через UART в виде простой записи в регистр USART1->DR выполнится на порядок быстрее, чем огромная HAL функция, работа которой по итогу все равно сведется к тупой записи в ровно в тот же регистр. Так в чем смысл? 

Link to comment
Share on other sites

6 минут назад, Стальной сказал:

не используйте функции HAL в этом месте

Тогда смысл его вообще использовать? Настроить железо без него быстрее и выглядит код читабельнее и информативнее. Быстро работать HAL тоже не умеет. Так в чем смысл?

Link to comment
Share on other sites

Ээээ, а в чем проблема настроить его без HAL? В режем хоста вообще ничего сложного. Тупо в прерывании выполняй те действия, о которых тебя просит ПК, шлешь гору дескрипторов, проводишь энумерацию и все, готов к работе.

Link to comment
Share on other sites

Я вот что-то никак не пойму зачем вы полезли в такую сложную вещь, как RTOS не умея элементарно обращаться с IDE? Ну начните вы с простых проектов. Поставьте VisualStudio, там конструктор кода лучше работает. Что вы вцепились в этот калокуб?

Link to comment
Share on other sites

38 минут назад, Стальной сказал:

Я собирал в версии 5 6 1

тоже думал про версии, но пробовал экспортировать ваш проект и в том виде как есть и с пересборкой под мою 6ю версию. все равно виснет на coping library files. попробовал сейчас собрать другой проект, новый и без FreeRTOS, сборка завершается нормально.
может конечно я усложняю, но вдруг mx что то пытается подскачать? у "парней с ютуба" это происходит неявно, потому они об этом и не говорят. но сам куб ide и мх я скачивал через браузерный vpn, тк st-шники заблокировали российские ip в связи с "событиями" (выводится сообщение что файлы не доступны). а на самом компе vpn-а нет, вот mx и ide не могут достучаться куда надо.

Link to comment
Share on other sites

Мыши плакали, кололись, но продолжали жрать кактус. Ну-ну.

 

3 минуты назад, Андрей Гараж сказал:

тк st-шники заблокировали российские ip в связи с "событиями"

Мммм, отличная идея попользоваться глючным, наполовину заблоченным г..ом. И только по тому, что какой-то идиот с ютьюба тоже его использует. В то время как тот же VisualStudio ничем не заблокирован, имеет интеграцию с калокубом и прекрасно генерит проекты с HAL и прочим шлаком. Но для него нет стада макак с ютьюба, придется самому думать и кнопочки нажимать. Плюс сейчас все идет к тому, что вместо STM будем юзать китайские МК, а там калокубов. HAL и прочей шляпы и близко нет. И начнется кризис среди неокрепших умов "программистов", не умеющих настраивать МК по даташиту...

Link to comment
Share on other sites

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...