I can't at the moment get my head around what the programming model looks like - for example, if you have C programs calling bits of XC I can't see how those bits of XC can be made to communicate with each other without resorting to assembler (though I can see how they might use ports).
A few examples would be really helpful. There's always a "hack" but some guidance as to the least ugly method would be cool.
By the way, in the Tools User Guide there seems to be a mistake:
Shouldn't that say "C/C++"?19.1.2 Passing Arguments from C/C++ to XC
A function defined in XC with a parameter of type port, chanend or timer can be declared in XC as taking a parameter of type unsigned int.