I'm using: DSP/BIOS 5.31.02, Code Composer Studio 3.3, and Code Generation Tools v6.1.7, C6416 in big endian mode.
I'm having issues with memory allocation/deallocation. Over time, a time-critical section of my code goes from very quick and consistent (300us overall, very fixed amount of time to execute 'delete' on the objects during this time) to much slower and inconsistent (over 1ms, with just the calls to 'delete' taking an order of magnitude longer or more) while executing the exact same code. It seems like the heap is becoming fragmented and/or filled with many small objects, causing the processes of freeing the memory back to take a longer, more inconsistent amount of time. I'm trying to find out how memory allocation works when using new/delete with DSP/BIOS.
At first I thought all I needed to do was modify the run-time support (RTS) library, as my *.tcf generated *.cmd file is including rts6400e.lib. So I figured out how to rebuild the RTS library (rts6400e.lib) and modified malloc()/free() in memory.c. However, none of my changes are taking affect. After some investigating done in my previously posted thead, it looks like the linker is using the malloc()/free() routines found in the bios.a64e library that a DSP/BIOS project wants to use. How do I either: A) force the linker to use the versions of malloc()/free() found in the RTS library or B) modify the malloc()/free() routines found in the bios.a64e library or C) provided an over-rided version of malloc()/free() as part of a source file added to the project?
Thanks!