【发布时间】:2014-09-01 14:46:39
【问题描述】:
我正在使用 Freescale i.Mx51,并希望将 Windows CE 6.0 memcpy 函数替换为基于 NEON 的 memcpy 函数。
我在 ARM 主页 (http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.faqs/ka13544.html) 上找到了一些应该如何工作的代码。
我的第一个问题是:我在哪里可以找到我的平台构建器项目中的 memcpy 代码以及如何更改代码?我找到了一个教程 (http://blogs.msdn.com/b/ce_base/archive/2007/01/15/replacing-a-coredll-component-in-yamazaki.aspx) 来替换 coredll 中的淋浴器,但是页面太旧了,没有截图了。
我尝试对 memcpy 做同样的事情,但我没有所有屏幕截图就卡住了。
第二个问题是:我是否必须做更多的事情来复制一些数据或者这些汇编代码是否足够:
NEONCopyPLD
PLD [r1, #0xC0]
VLDM r1!,{d0-d7}
VSTM r0!,{d0-d7}
SUBS r2,r2,#0x40
BGE NEONCopyPLD
也许有人以前做过同样的事情,或者知道如何更改 memcpy 代码。
最好的问候 延斯
【问题讨论】:
-
在后一点上,尝试使用该代码将
memcpy17 字节放入堆栈上的缓冲区中,看看会发生什么... ;) -
我的 NEON memcpy 有 344 行长 :)
标签: windows arm windows-ce memcpy neon