@aveal да не) у меня есть кубмх и куб иде. через куб иде получилось завести ртос, пусть и прописыванием всех папок вручную. как происходит: выбираешь плату, ставишь НЕ systick, указываешь в мидлвайр фриртос, активируешь пины какие надо, отладку по сериал вайр, жмакаешь шестеренку -> генерится код, прописываешь папки с фриртосом вручную, удалаяешь core/src/system_stm32xx.c (или как то так), пишешь какой-нибудь блинк и заливаешь на плату. все норм, потоки работают, диоды моргают. это все касается только одного куба иде, мх не запускаю вообще.
а если открыть мх и попробовать сгенерить код через него (по сути тоже самое), то он виснет после "жмаканья шестеренки" на том моменте, который я скинул скриншотом. при этом, если сконфигурировать код без фриртоса, как просто обычное однопоточное приложение, то сборка проходит до конца и потом предлагает перейти в куб иде чтоб продолжить работать со сгенерированным кодом. надеюсь понятно объяснил)
кажется я понял...
@andrej-garazh как раз хотел порекомендовать путь упростить и без русских символов попробовать )
@aveal вчера искал и не нашел, а сегодня успех)
скомпилилось с первого раза
Здравствуйте. У меня та же проблема - сначала ругался ”fatal error: FreeRTOS.h: No such file or directory" - тогда я добавил 3 пути и эта ругань пропала.
После этого появилось много ошибок, смысл которых в переопределении. Вот первая часть сообщения первой из ошибок: "102: multiple definition of `SystemCoreClock'". Присутствуют такие же ошибки по AHBPrescTable, SystemInit, SystemCoreClockUpdate и т.д.
У меня в имени пользователя есть Кириллица, поэтому я переместил репозиторий в папку без Кирилицы
Это не помогло и тогда пересоздал проект заново и ошибки пропали. Видимо в старом проекте были ссылки на прежний репозиторий.
Но появились ошибки "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: region `RAM' overflowed by 248 bytes
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:68: 033 FreeRTOS. 3 tasks with different times. STM32F030R8_.elf] Error 1
Привет. У меня переводилка стоит на компе, называется "QTranslator" (не реклама 😀 ), она говорит, что код не влезет в чип. Потому что:
Ежели так, то можно попробовать уменьшить стек и посмотреть что будет.
@andrej-garazh допустимый диапазон 128...3072. Если указать вне диапазона - то выводится уведомление Out of range и перед генерацией кода IDE выдаёт ошибку. Я попробовал уменьшить количество task'ов с трёх до одной - не помогло.
Попробовал собрать пустой проект с твоим чипом. Да, сразу показывает, что RAM usage почти 100%. Я так понимаю, ты включал соответствующую настройку во фриртосе, чтобы не вываливалось это сообщение?
Собрал проект для 103c8t6 (которая самая ходовая на алике) с фриртосом, получилось использование RAM чуть больше 8кб, а на твоем чипе 8кб ВСЕГО. Есть подозрение, что фриртос на твой чип не влезет без танцев с бубном) Видимо придется подумать...
Да, USE_NEWLIB_REENTRANT установил в Enabled, хотя я не понимаю смысла этого.
У меня есть ещё плата STM32G071RB с 32 Kbytes SRAM - на ней всё взлетело с первого раза. Что характерно - пути к папкам include, GCC\ARM_CM0 и CMSIS_RTOS_V2 указывать не потребовалось. Спасибо большое за подсказку про нехватку объёма SRAM
хотя я не понимаю смысла этого.
На здоровье) А эта штука, насколько я понял из описания, позволяет работать с оперативкой на более глубоком уровне. Возможно это позволит решить твою изначальную проблему.