Microchip appears to be replacing MPLAB 8 with MPLAB X and the C30 compiler with XC16.
I have had no problems yet with UDB4 code compiled using the XC16 compiler under MPLAB X (MatrixPilotQuad code only).
The only difference I've noted for UDB4 is that the XC16 compiler complains about licensing when you specify optimization levels other than zero. But it does pass the correct -Ox value to GCC and optimization does occur. The C30 compiler (v3.30) doesn't complain under MPLAB X, but i believe it does under MPLAB 8.
Unfortunately, when using XC16 to compile the quad code for the Arsov AUAV2, the linker emits an error:
"Error: A heap is required, but has not been specified"
If I specify a heap of 32 bytes to get around the error, the code runs, but the DCM does not reflect attitude changes; it appears to be completely static.
Two questions:
1) Should we just stick with the C30 compiler or try to keep up with Microchip?
2) Does the heap error provide any clues as to why the code would run incorrectly on the AUAV2?
thanks for any advice,
--Mark