fix rt_memcpy buf in RT_USING_TINY_SIZE enable

This commit is contained in:
flyingcys 2017-11-02 11:12:55 +08:00
parent 300888082a
commit f6b71172b5
1 changed files with 13 additions and 4 deletions

View File

@ -220,11 +220,20 @@ void *rt_memcpy(void *dst, const void *src, rt_ubase_t count)
{ {
#ifdef RT_USING_TINY_SIZE #ifdef RT_USING_TINY_SIZE
char *tmp = (char *)dst, *s = (char *)src; char *tmp = (char *)dst, *s = (char *)src;
rt_ubase_t len;
if(tmp <= s || tmp > (s + count))
{
while (count--)
*tmp ++ = *s ++;
}
else
{
for(len = count; len > 0; len --)
tmp[len -1] = s[len - 1];
}
while (count--) return dst;
*tmp++ = *s++;
return dst;
#else #else
#define UNALIGNED(X, Y) \ #define UNALIGNED(X, Y) \