ok so i am sort of new to heaps in SYSBIOS and looking at what little documentation i can find i have some questions:
1) if i want to use basic heap calls like alloc, free, realloc, etc it will use the "system" heap that is defined in the runtime tab in sysbios. if i have 2 tasks that are at different priorities using that heap at the same time will there be issues? i see in the ROV window that the system heap is listed under Heapmem. when i looked up heapmem it says there was a gatemutex on heap mems by default and that you can change that if you want. i looked up gatemutex and it appears that it is a gate for tasks. so does this all apply to the system heap as well or does it not since it is listed under heapmems or is ti a special heapmem since it uses a different API? if not how do i apply a gate to the system heap? do i have to have "use heapmem" enabled in my .cfg file to get the full functionality or a heapmem or does that just come automatically? right now i have the NDK and another 3rd party software module running at the same time and i fear they are fighting for the heap space.
2) if i want to use my own heapmem instance for something then i have to call special free, alloc, etc functions. i see that free has a size parameter in this instance but the system free does not. does this mean i have to maintain a table of all allocs so i know how much was allocated to a block when i try to free it? is there info on how to free memory without keeping track of all the allocs? is the size part of the alloc?
3) i see that sysbios heaps don't have realloc. from what i can tell it is basically a "free" followed by an "alloc," is that essentially right?
4) the system heap has a "heap section" which is by default "null" and it says you can reassign this anyway you want. what is entered in this spot? can i basically put whatever i want or am i supposed to use the defined memory sections in my platform?
5) what if i don't define an error block in my alloc call?
6) when using heap tracker it says it uses up a little more of the memory allocated so you have to adjust for that. if a 3rd party is using the heap and we have no control over the allocs then will they likely overrun their heap? or do we have to adjust for the heap total size and 24 bytes is tacked on in addition to the original amount so the original alloc call will be fine?