STM32F103 Ram问题与FreeRTOS + Trace

时间:2015-08-25 23:40:16

标签: stm32 freertos coocox

刚开始使用FreeRTOS,我遇到了任务问题,所以我认为这是开始学习调试的最佳时机。

尝试使用Trace库来评估我在编译过程中遇到的情况。

我正在使用带有ST-LinkV2的CooCox IDE。 目标设备是STM32F103C8T6。 FreeRTOS是V8.2.2。 Tracealyzer Recorder Library是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 个答案:

答案 0 :(得分:1)

这是一个基本的工具问题,而不是FreeRTOS或FreeRTOS + Trace问题,尽管您可以通过更改FreeRTOS配置和/或FreeRTOS + Trace配置来修复它。

错误告诉您,您尝试使用的RAM多于您实际使用的部分,或者至少是您告诉链接器实际拥有的RAM数量。

如果查看应用程序的映射文件,您将看到哪些变量正在消耗RAM。可能单个最大的将是FreeRTOS堆。 FreeRTOS documentation告诉您如何减少它。可能第二大的将是跟踪缓冲区,跟踪配置头文件包含大量文档,告诉您如何减少它。