I've received good information in a previous post regarding moving memory around to deal with the split memory architecture in the Kinetis processors. While I haven't yet tried to apply it to the memory allocated for an MQX task's stack, I have moved global buffers to the smaller section of RAM. So far, that seems to work (compiles, runs, and exhibits proper behavior). However, it only works for arrays of standard types. If I try to move a global C++ object, it builds, but execution fails immediately and I end up in my fault handler code.
More specifically, what happens is that I get an unhandled interrupt: WDOG_EWM_IRQHandler. If I define an empty handler for that function, then I just get another, and another, and the list of unhandled IRQ handlers grows and grows. This is very strange. Can anyone explain why this happens, and what, if anything, can be done to make reallocation of C++ objects work?
BTW, I am using __attribute__((section(".m_data_2"))) to move my objects to the smaller section of RAM.