Important changes to forums and questions
All forums and questions are now archived. To start a new conversation or read the latest updates go to forums.mbed.com.
7 years, 12 months ago.
Memory leaks all around with simple programms.
Hello everybody,
I'm using a STM32F072VB on a custom board. 128KB Flash, 16KB RAM. After some testing i figuered out, that mbed uses about 7KB RAM with just a simple test programm. After some adjustments to Main-Stack-Size (down to 2KB) and Thread-Stack-Size(down to 512Byte) I am able to creat 3 Threats. That's it. Even if I try to create an additional EventQueue I get the message "Operator new[] out of memory"
include the mbed library with this snippet
#include "mbed.h"
Serial myserial (PA_9, PA_10, 115200);
Thread t1,t2,t3;
//EventQueue queue;
void schreibe_a(Serial *seriell){
for(;;){
seriell->putc('a');
Thread::wait(500);
}
}
void schreibe_b(Serial *seriell){
for(;;){
seriell->putc('b');
Thread::wait(500);
}
}
void schreibe_c(Serial *seriell){
for(;;){
seriell->putc('c');
Thread::wait(500);
}
}
int main() {
t1.start(callback(schreibe_a, &myserial));
t2.start(callback(schreibe_b, &myserial));
t3.start(callback(schreibe_c, &myserial));
}
Compiler Message:
Invoking: Cross ARM GNU Create Flash Image
Invoking: Cross ARM GNU Print Size
arm-none-eabi-objcopy -O ihex "mbed-dorobo.elf" "mbed-dorobo.hex"
arm-none-eabi-size format=berkeley "mbed-dorobo.elf"
text data bss dec hex filename
71136 2688 5952 79776 137a0 mbed-dorobo.elf
Finished building: mbed-dorobo.siz
Finished building: mbed-dorobo.hex
<</code>>
The reference isnt very helpfull and I havent any idea why its consuming so much RAM.
Main-Thread: 2KB
3x512Byte 1,5KB
mbed: 7KB
---
10KB
So why does the EventQueue kills my programm? There are about 3-4 KB left for this????????