STM32F103 Выпуск оперативной памяти с FreeRTOS+Trace

Я только что начал с FreeRTOS, и у меня возникли проблемы с заданием, поэтому я подумал, что сейчас самое время начать с изучения отладки.

Пытаясь использовать библиотеку Trace для оценки ситуации, я застрял в процессе компиляции.

Я использую CooCox IDE с ST-LinkV2. Целевое устройство - STM32F103C8T6. FreeRTOS - это V8.2.2. Библиотека Tracealyzer Recorder v2.7.7.

Ошибка:

       [cc] c:/arm_development/gcc-arm-none-eabi-4_9-2015q1-20150306-win32/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld.exe: FreeRTOSDemo.elf section `.bss' will not fit in region `ram'
       [cc] c:/arm_development/gcc-arm-none-eabi-4_9-2015q1-20150306-win32/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld.exe: region ram  overflowed with stack
       [cc] c:/arm_development/gcc-arm-none-eabi-4_9-2015q1-20150306-win32/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld.exe: region `ram' overflowed by 6000 bytes
       [cc] collect2.exe: error: ld returned 1 exit status

BUILD FAILED
Total time: 11 seconds

Любые намеки на этот счет будут полезны, заранее.

1 ответ

Решение

Это вопрос основных инструментов, а не вопрос FreeRTOS или FreeRTOS+Trace, хотя вы можете исправить его, изменив конфигурацию FreeRTOS и / или конфигурацию FreeRTOS+Trace.

Ошибка говорит вам, что вы пытались использовать больше оперативной памяти, чем та часть, которую вы используете, фактически, или, по крайней мере, объем оперативной памяти, который вы указали компоновщику, который фактически есть у вашей части.

Если вы посмотрите на файл карты для вашего приложения, вы увидите, какие переменные потребляют оперативную память. Вероятно, самым большим будет куча FreeRTOS. Документация FreeRTOS говорит вам, как уменьшить это. Вероятно, вторым по величине будет буфер трассировки, а файл заголовка конфигурации трассировки содержит много документации, которая расскажет вам, как ее уменьшить.

Другие вопросы по тегам