I have a reentrant function that is passed a single parameter as follows:
void Filt_QR ( FilterDataType * FilterData ) reentrant { unsigned char aucTemp40[5]; memcpy( aucTemp40, /* void * dest */ FilterData->aucYpterm_40, /* void * src */ 5); /* int len */ ...
Can you post the assembler code generated for this function from the .lst file? By "always gets the destination wrong", you mean "not anywhere in the reentrant stack"? What happens if you do this:
void Filt_QR ( FilterDataType * FilterData ) reentrant { unsigned long aucTemp40_4; unsigned char aucTemp40_1; memcpy( &aucTemp40_4, /* void * dest */ FilterData->aucYpterm_40, /* void * src */ 5); /* int len */