I am getting a rather odd __cxa_throw() exception using operator new() using KDS and a K22F. I saw, odd, because it happens on only maybe the second invocation of new(), and there is PLENTY of room on the heap.
Using the representative code below:
class_ptr1 = new Class("Class 1");
class_ptr2 = new Class("Class 2");
class_ptr1 is assigned the address 0x20000020
When the attempt to allocate the second class fires, I get the __cxa_throw() exception. Of course, this would typically mean I am out of memory, but I have TONS of space left in the heap, unless i am reading this wrong somehow and the space is allocated top to bottom and not bottom to top:
.heap 0x20000000 0x8000
0x20000000 . = ALIGN (0x8)
0x20000000 __end__ = .
0x20000000 PROVIDE (end, .)
0x20000000 __HeapBase = .
0x20008000 . = (. + HEAP_SIZE)
Anyone else seen this? This triggered after I changed my OSA from Bare Metal to FreeRTOS, so something funny may have happened there.
This has stopped me in my tracks, so any help GREATLY appreciated. Thanks!