I've been struggling to write a PSP/BSP with MQX, without using PE, and to be honest I feel a bit left out in the cold. I guess generating with PE would be relatively straight forward, but without it everything seems to be against me.
For starters wherever you go in the source code you have to pick your way through the PE references, and work out what is relevant and what isn't. This is not as easy as you might imagine, especially as depending on which PSP/BSP you use as your base effects how the software is structured. For example in some supplied bsp_cm.c files _bsp_initialize_hardware() calls a routine called __pe_initialize_hardware(), this is fairly easy to understand. In others, the __pe_initialize_hardware() code is directly in _bsp_initialize_hardware() with no indication that it's PE. This is just once example, I'll let you trawl the packages to find other examples. Even if there was a way to remove all the PE references it would be a start.
So, in more general terms, is it realistic to use MQX in a real world, complex system without PE? I was of the understanding that I wouldn't have to learn all the source code to the whole of MQX to utilise it, but it seem that I not only have to understand entirely the underlying MQX code functionality I also have to navigate round PE too! Please tell me there is a better way! Are there any truly helpful sources of information out there that point the right direction?