1

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

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

我正在使用带有 ST-LinkV2 的 CooCox IDE。目标器件是 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

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

4

1 回答 1

1

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

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

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

于 2015-08-26T14:27:32.427 回答