А такой работает? И второй вопрос - что происходит, если вместо
memcpy написать __aeabi_memcpy?
void * memcpy4(void *dest, const void *src, size_t len)
{
int *d4 = dest;
const int *s4 = src;
for (size_t count4 = len/4; count4; count4--)
*d4++ = *s4++;
char *d = (char *)d4;
const char *s = (const char *)s4;
for (size_t count = len%4; count; count--)
*d++ = *s++;
return dest;
}