硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1357|回复: 1
收起左侧

memcpy数据复制粘贴的展开加速

[复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106728
QQ
发表于 2020-5-14 15:29:28 | 显示全部楼层 |阅读模式


memcpy(frame, src, len)

展开:

  1. /* Fast-copy data to frame buffer */
  2.   for ( ; len > 7U; frame += 8, src += 8, len -= 8U) {
  3.     __UNALIGNED_UINT32_WRITE(&frame[0], __UNALIGNED_UINT32_READ(&src[0]));
  4.     __UNALIGNED_UINT32_WRITE(&frame[4], __UNALIGNED_UINT32_READ(&src[4]));
  5.   }
  6.   /* Copy remaining 7 bytes */
  7.   for ( ; len > 1U; frame += 2, src += 2, len -= 2U) {
  8.     __UNALIGNED_UINT16_WRITE(&frame[0], __UNALIGNED_UINT16_READ(&src[0]));
  9.   }
  10.   if (len > 0U) { frame[0] = src[0]; }
复制代码


回复

使用道具 举报

210

主题

1043

回帖

1683

积分

至尊会员

More we do, more we can do.

积分
1683
发表于 2020-5-15 21:50:24 | 显示全部楼层
32位MCU里memcpy速度上限也就32位复制的速度
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-2 15:04 , Processed in 0.158111 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表