FreeRTOS+Trace 的 STM32F103 Ram 问题

STM32F103 Ram issue with FreeRTOS+Trace

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

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

我正在使用 CooCox IDE 和 ST-LinkV2。 目标设备是 STM32F103C8T6。 FreeRTOS 是 V8.2.2。 Tracealyzer 记录器库是 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

关于此事的任何提示都会有所帮助,请提前发送。

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

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

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