Top.Mail.Ru
Уведомления
Очистить все

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

Страница 2 / 2
Андрей Гараж
(@andrej-garazh)
Active Member

@aveal да не) у меня есть кубмх и куб иде. через куб иде получилось завести ртос, пусть и прописыванием всех папок вручную. как происходит: выбираешь плату, ставишь НЕ systick, указываешь в мидлвайр фриртос, активируешь пины какие надо, отладку по сериал вайр,  жмакаешь шестеренку -> генерится код, прописываешь папки с фриртосом вручную, удалаяешь core/src/system_stm32xx.c (или как то так), пишешь какой-нибудь блинк и заливаешь на плату. все норм, потоки работают, диоды моргают. это все касается только одного куба иде, мх не запускаю вообще.
а если открыть мх и попробовать сгенерить код через него (по сути тоже самое), то он виснет после "жмаканья шестеренки" на том моменте, который я скинул скриншотом. при этом, если сконфигурировать код без фриртоса, как просто обычное однопоточное приложение, то сборка проходит до конца и потом предлагает перейти в куб иде чтоб продолжить работать со сгенерированным кодом. надеюсь понятно объяснил)

ОтветитьЦитата
Topic starter Размещено : 21.06.2022 16:37
Андрей Гараж
(@andrej-garazh)
Active Member

кажется я понял...

ОтветитьЦитата
Topic starter Размещено : 21.06.2022 23:26
Aveal
(@aveal)
Illustrious Member Admin

@andrej-garazh как раз хотел порекомендовать путь упростить и без русских символов попробовать )

ОтветитьЦитата
Размещено : 22.06.2022 11:58
Андрей Гараж
(@andrej-garazh)
Active Member

@aveal вчера искал и не нашел, а сегодня успех)

скомпилилось с первого раза

ОтветитьЦитата
Topic starter Размещено : 22.06.2022 23:19
Aveal
(@aveal)
Illustrious Member Admin

@andrej-garazh рад, что все получилось в итоге)

ОтветитьЦитата
Размещено : 23.06.2022 10:18
Dutch
(@dutch)
Active Member

Здравствуйте. У меня та же проблема - сначала ругался ”fatal error: FreeRTOS.h: No such file or directory" - тогда я добавил 3 пути и эта ругань пропала.

image

После этого появилось много ошибок, смысл которых в переопределении. Вот первая часть сообщения первой из ошибок: "102: multiple definition of `SystemCoreClock'". Присутствуют такие же ошибки по AHBPrescTable, SystemInit, SystemCoreClockUpdate и т.д.

У меня в имени пользователя есть Кириллица, поэтому я переместил репозиторий в папку без Кирилицы

image

Это не помогло и тогда пересоздал проект заново и ошибки пропали. Видимо в старом проекте были ссылки на прежний репозиторий.

Но появились ошибки "section `._user_heap_stack' will not fit in region `RAM'" и "`RAM' overflowed by 248 bytes". Не подскажите что с ними делать? У меня плата Nucleo STM32F030R8

Спойлер
Полный текст ошибок
c:\stm32toolchain\stm32cubeide_1.7.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: 033 FreeRTOS. 3 tasks with different times. STM32F030R8_.elf section `._user_heap_stack' will not fit in region `RAM'
c:\stm32toolchain\stm32cubeide_1.7.0\stm32cubeide\plugins\com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.10.3-2021.10.win32_1.0.0.202111181127\tools\arm-none-eabi\bin\ld.exe: region `RAM' overflowed by 248 bytes
collect2.exe: error: ld returned 1 exit status
make: *** [makefile 033 FreeRTOS. 3 tasks with different times. STM32F030R8_.elf] Error 1

 

 

ОтветитьЦитата
Размещено : 03.08.2022 16:18
Андрей Гараж
(@andrej-garazh)
Active Member

Привет. У меня переводилка стоит на компе, называется "QTranslator" (не реклама 😀 ), она говорит, что код не влезет в чип. Потому что:

Ежели так, то можно попробовать уменьшить стек и посмотреть что будет.

 

ОтветитьЦитата
Topic starter Размещено : 03.08.2022 16:32
Dutch
(@dutch)
Active Member

@andrej-garazh допустимый диапазон 128...3072. Если указать вне диапазона - то выводится уведомление Out of range и перед генерацией кода IDE выдаёт ошибку. Я попробовал уменьшить количество task'ов с трёх до одной - не помогло.

image
ОтветитьЦитата
Размещено : 03.08.2022 21:25
Андрей Гараж
(@andrej-garazh)
Active Member

Попробовал собрать пустой проект с твоим чипом. Да, сразу показывает, что RAM usage почти 100%. Я так понимаю, ты включал соответствующую настройку во фриртосе, чтобы не вываливалось это сообщение?

Собрал проект для 103c8t6 (которая самая ходовая на алике) с фриртосом, получилось использование RAM чуть больше 8кб, а на твоем чипе 8кб ВСЕГО. Есть подозрение, что фриртос на твой чип не влезет без танцев с бубном) Видимо придется подумать...

 

ОтветитьЦитата
Topic starter Размещено : 03.08.2022 22:26
Dutch
(@dutch)
Active Member

Да, USE_NEWLIB_REENTRANT установил в Enabled, хотя я не понимаю смысла этого.

У меня есть ещё плата STM32G071RB с 32 Kbytes SRAM - на ней всё взлетело с первого раза. Что характерно - пути к папкам include, GCC\ARM_CM0 и CMSIS_RTOS_V2 указывать не потребовалось. Спасибо большое за подсказку про нехватку объёма SRAM

image
ОтветитьЦитата
Размещено : 04.08.2022 20:40
Андрей Гараж
(@andrej-garazh)
Active Member
От: @dutch

хотя я не понимаю смысла этого.

На здоровье) А эта штука, насколько я понял из описания, позволяет работать с оперативкой на более глубоком уровне. Возможно это позволит решить твою изначальную проблему.

ОтветитьЦитата
Topic starter Размещено : 04.08.2022 22:23
Страница 2 / 2
Поделиться: