请选择 进入手机版 | 继续访问电脑版

 找回密码
 立即注册
查看: 2392|回复: 21

结构体传输速率问题

[复制链接]
  • TA的每日心情
    擦汗
    1 小时前
  • 签到天数: 121 天

    [LV.7]常住居民III

    110

    主题

    155

    回帖

    1356

    积分

    金牌会员

    积分
    1356
    发表于 2023-1-14 20:20:55 | 显示全部楼层 |阅读模式



    在没有DMA之前都是用结构体=结构体来交换结构体中的数据

    XRVE5DN3DJCC_L404PMUMIX.png

    从汇编可以看出是使用COPY函数


    38Q$H09H0M]99`H@AU}H_PN.png

    使用DMA拷贝需要中间变量,交换两个结构体需要拷贝三次


    请问这两个方法哪个更快,为什么。最好做个实验结果看下
    回复 送花

    使用道具 举报

    该用户从未签到

    45

    主题

    2743

    回帖

    6130

    积分

    超级版主

    积分
    6130
    发表于 2023-1-14 21:35:14 | 显示全部楼层
    肯定DMA更快,硬件完成的。
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
    发表于 2023-1-15 06:05:07 | 显示全部楼层
    数据长度大约 多少字节?

    数据量少, 肯定直接赋值快, 数据量大, DMA快,

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
    发表于 2023-1-15 22:07:18 | 显示全部楼层
    我想测试一下, 楼主的问题, 到底数据长度大于多少时, DMA传输比纯软件快.

    结果大跌眼睛......

    请看测试结果, 简单的用定时器0, 作传输计时器(定时器0未设置, 12分频)




    未命名1.bmp
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
    发表于 2023-1-15 22:16:48 | 显示全部楼层
    以上测试, 数据长度为 STC8H  DMA传输充许的最大值(256字节),

    可以计算出,  数据交换:  501/322 =1.56倍, 即 DMA对两组长度为 256字节的 XRAM数据, 进行交换, 比用纯软件方式, 执行速度慢 1.56倍,

    数据移动: 165/151 =1.1倍, 即 DMA 将一组长度为 256字节的 XRAM数据, 移到另一组, 比用纯软件方式, 执行速度慢 1.1倍.
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
    发表于 2023-1-15 22:17:39 | 显示全部楼层
    具体测试程序


    未命名1.JPG
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
    发表于 2023-1-15 22:18:28 | 显示全部楼层
    继上.



    未命名2.JPG
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
    发表于 2023-1-15 22:22:12 | 显示全部楼层
    DMA 的传输速度, 竟然干不过纯软件.

    想不到啊......

    也想不通......

    点评

    zhp
    对于您的测试结果,其实一点都不意外 首先,DMA(Direct Memory Access)直接存储器访问,即存储器读写不需要CPU的参与,DMA过程中可以释放CPU处理其它紧急事件 这才是DMA存在的意义,而不是说DMA就一定会更快  详情 回复 发表于 2023-1-16 12:07
  • TA的每日心情
    擦汗
    1 小时前
  • 签到天数: 121 天

    [LV.7]常住居民III

    110

    主题

    155

    回帖

    1356

    积分

    金牌会员

    积分
    1356
     楼主| 发表于 2023-1-16 09:35:52 | 显示全部楼层

    我想不通的是DMA是硬件,你是如何用KEIL模拟的
  • TA的每日心情
    开心
    3 天前
  • 签到天数: 106 天

    [LV.6]常住居民II

    36

    主题

    783

    回帖

    3693

    积分

    荣誉版主

    积分
    3693
    发表于 2023-1-16 11:07:52 | 显示全部楼层
    QQ624353765 发表于 2023-1-16 09:35
    我想不通的是DMA是硬件,你是如何用KEIL模拟的

    用 STC8H 芯片仿真, 数据处理 用 DMA传输 和 纯软件模拟传输 两种方法, 然后计时, 对比执行时间, 得出传输速度和效率.
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-3-29 09:47 , Processed in 0.086650 second(s), 68 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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