硬汉嵌入式论坛

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

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

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
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]; }
复制代码


回复

使用道具 举报

218

主题

1106

回帖

1770

积分

至尊会员

More we do, more we can do.

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-10 02:41 , Processed in 0.207401 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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