结构体传输速率问题
在没有DMA之前都是用结构体=结构体来交换结构体中的数据
从汇编可以看出是使用COPY函数
使用DMA拷贝需要中间变量,交换两个结构体需要拷贝三次
请问这两个方法哪个更快,为什么。最好做个实验结果看下
肯定DMA更快,硬件完成的。 数据长度大约 多少字节?
数据量少, 肯定直接赋值快, 数据量大, DMA快,
我想测试一下, 楼主的问题, 到底数据长度大于多少时, DMA传输比纯软件快.
结果大跌眼睛......
请看测试结果, 简单的用定时器0, 作传输计时器(定时器0未设置, 12分频)
以上测试, 数据长度为 STC8HDMA传输充许的最大值(256字节),
可以计算出,数据交换:501/322 =1.56倍, 即 DMA对两组长度为 256字节的 XRAM数据, 进行交换, 比用纯软件方式, 执行速度慢 1.56倍,
数据移动: 165/151 =1.1倍, 即 DMA 将一组长度为 256字节的 XRAM数据, 移到另一组, 比用纯软件方式, 执行速度慢 1.1倍. 具体测试程序
继上.
DMA 的传输速度, 竟然干不过纯软件.
想不到啊......
也想不通...... LAOXU 发表于 2023-1-15 22:18
继上.
我想不通的是DMA是硬件,你是如何用KEIL模拟的 QQ624353765 发表于 2023-1-16 09:35
我想不通的是DMA是硬件,你是如何用KEIL模拟的
用 STC8H 芯片仿真, 数据处理 用 DMA传输 和 纯软件模拟传输 两种方法, 然后计时, 对比执行时间, 得出传输速度和效率.