I have a routine called MakeSandwiches() called by a dma_rx ISR.
The function declares its own local pointers to things:
float * pPeanut, pButter, pJelly;
and also some other "restricted" pointers:
float * restrict pKnife;
float * restrict pSpoon;
float * restrict pPlate;
that point to specific, unique locations in the code. The restrict qualifier is used to make sandwiches faster :)
When stepping in, seems like pPeanut, pButter, pJelly are displayed fine in the watch window, but for some strange reason, pKnife, pSpoon, pPlate display the "cannot load from non-primitive location" error in the watch window.
I've read other posts here about having to cast user-defined types explicitly so that the compiler displays these expressions correctly in the watch window. But what is so complicated about a float * restrict?
Any clues?
--Dave