David Smart
/
mbed_blinky_eats_memory
Revised test using private new/delete methods suggested in http://mbed.org/forum/mbed/post/24686/
Utility.cpp@0:63f4520f2953, 2014-06-11 (annotated)
- Committer:
- WiredHome
- Date:
- Wed Jun 11 10:59:02 2014 +0000
- Revision:
- 0:63f4520f2953
Added custom new/delete methods suggested in http://mbed.org/forum/mbed/post/24686/
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
WiredHome | 0:63f4520f2953 | 1 | |
WiredHome | 0:63f4520f2953 | 2 | #include "Utility.h" |
WiredHome | 0:63f4520f2953 | 3 | |
WiredHome | 0:63f4520f2953 | 4 | uint32_t Free() { |
WiredHome | 0:63f4520f2953 | 5 | uint32_t max = 50000; |
WiredHome | 0:63f4520f2953 | 6 | uint32_t x = max / 2; |
WiredHome | 0:63f4520f2953 | 7 | uint32_t min = 0; |
WiredHome | 0:63f4520f2953 | 8 | |
WiredHome | 0:63f4520f2953 | 9 | __disable_irq(); |
WiredHome | 0:63f4520f2953 | 10 | while (min < max-1) { |
WiredHome | 0:63f4520f2953 | 11 | void * p = malloc(x); |
WiredHome | 0:63f4520f2953 | 12 | if (p) { |
WiredHome | 0:63f4520f2953 | 13 | free(p); |
WiredHome | 0:63f4520f2953 | 14 | min = x; |
WiredHome | 0:63f4520f2953 | 15 | } else { |
WiredHome | 0:63f4520f2953 | 16 | max = x; |
WiredHome | 0:63f4520f2953 | 17 | } |
WiredHome | 0:63f4520f2953 | 18 | x = (max + min)/2; |
WiredHome | 0:63f4520f2953 | 19 | } |
WiredHome | 0:63f4520f2953 | 20 | __enable_irq(); |
WiredHome | 0:63f4520f2953 | 21 | return(x); |
WiredHome | 0:63f4520f2953 | 22 | } |