简体   繁体   English

STM32F103 FreeRTOS + Trace的Ram问题

[英]STM32F103 Ram issue with FreeRTOS+Trace

just starting with FreeRTOS and I am having problem with task, so I thought it is the best time to start with learning debugging. 只是从FreeRTOS开始,我在执行任务时遇到问题,所以我认为这是学习调试的最佳时机。

Trying to use Trace library to assess situation I got stuck on compilation process. 试图使用跟踪库评估情况,我陷入了编译过程。

I am using CooCox IDE with ST-LinkV2. 我正在将CooCox IDE与ST-LinkV2结合使用。 Target device is STM32F103C8T6. 目标器件是STM32F103C8T6。 FreeRTOS is V8.2.2. FreeRTOS是V8.2.2。 Tracealyzer Recorder Library is v2.7.7. Tracealyzer记录器库为v2.7.7。

Error is: 错误是:

       [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

Any hints on that matter would be helpful, tnx in advance. 关于此事的任何提示都将有所帮助,提前tnx。

This is a basic tools question, not a FreeRTOS or FreeRTOS+Trace question, although you can fix it by changing the FreeRTOS configuration and/or FreeRTOS+Trace configuration. 这是一个基本的工具问题,不是FreeRTOS或FreeRTOS + Trace问题,尽管您可以通过更改FreeRTOS配置和/或FreeRTOS + Trace配置来解决。

The error is telling you that you have tried to use more RAM than the part you are using actually has, or at least, the amount of RAM you have told the linker your part actually has. 错误告诉您,您尝试使用的RAM比实际使用的部件更多,或者至少是您告诉链接器您的部件实际拥有的RAM数量。

If you look at the map file for your application you will see which variables are consuming RAM. 如果您查看应用程序的映射文件,您将看到哪些变量正在消耗RAM。 Probably the single largest will be the FreeRTOS heap. 最大的一个可能是FreeRTOS堆。 The FreeRTOS documentation tells you how to reduce that. FreeRTOS文档告诉您如何减少它。 Probably the second largest will be the trace buffer, and the trace configuration header file contains lots of documentation that will tell you how to reduce that. 可能第二大的将是跟踪缓冲区,并且跟踪配置头文件包含许多文档,这些文档将告诉您如何减少它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM