I watched the code and found that when the Macro MQXCFG_MEM_COPY defined as 1 or MQXCFG_MEM_COPY_NEON and PSP_HAS_FPU all defined as 1, the code will not use the memcpy function from C lib, instead will use _mem_copy function in MQX code.
#if MQXCFG_MEM_COPY || (MQXCFG_MEM_COPY_NEON && PSP_HAS_FPU)
extern void _mem_copy(pointer, pointer, _mem_size);
#else
# include <string.h>
#define _mem_copy(s,d,l) memcpy(d,s,l)
#endif
With regards to the parameter reverse problem, in _mem_copy function, the first parameter is the source address of the data to copy and the second is the destination address to place at; but in memcpy function that defined in C lib, the first parameter is the destination address to place at and second is the source address of the data to copy.