Re: MZ DA heap location
For static allocation you can use regions.
For dynamic allocation, I think the linker determines the heap automagically, and it's location cannot be specified. I think you will have to supply your supply your own malloc(), realloc(), free() etc. Fortunately the stdlib functions are weak, so if you supply these functions yourself Harmony etc. will use your version. I'm sure you can find some suitable malloc replacements on the web which can be modified.
You might include some heuristics such that allocations < a certain size go to RAM, larger ones to DDR, in effect maintaining two heaps.