Does anyone here know what this is? I am using the Microchip XC16 compiler and it is throwing this error: ../MainUIC130.c:514:25: error: passing argument 3 of 'PutImage8BPP' from pointer to non-enclosed address space.
I can find no definition for such a thing and I find no answers on any other forums about this. It seems when this question is asked the thread dies.
Offending line there are many -
PutImage8BPP(NUTX, NUTY, (FLASH_WORD *)&NUTCW, 0);
definition if arg 3:
const IMAGE_FLASH NUTCW = <--- IMAGE_FLASH is a struct
{
(FLASH | IMAGE_MBITMAP | COMP_NONE), <--- this is an enum
(FLASH_BYTE *)__NUTCW <--- FLASH_BYTE is a char
};
Thanks for your reply. The Microchip forum is fairly useless as no one there seems to know what an enclosed v non-enclosed address space is. I've been at this C thing for a while and have never heard of this concept. The strange thing is that this unmodified code built without error on their previous compiler but it is no longer supported or available. Anyway thanks again for your reply.
I have no idea what a non-enclosed address space is.
The only possibilities that come to mind are (in order from most to least likely):
1 The compiler has detected that you are attempting to access something out of range.
2 You've a mismatch in CV-qualifiers.
3 Your microchip actually has different pointer types depending on the type of thing being
addressed, and you are mixing them.
From other posts on the net, it looks like this is a common issue with your compiler. Maybe it's a bug?