找回密码
 立即注册
查看: 381|回复: 16

CPU 和 DMA 如何避免为抢占 xdata 总线而产生的总线总裁 ?

[复制链接]
  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 148 天

    [LV.7]常住居民III

    19

    主题

    97

    回帖

    867

    积分

    高级会员

    积分
    867
    发表于 2024-1-19 08:52:19 | 显示全部楼层 |阅读模式
    现在xdata,edata,然后在keil的时候,有code啊啥的这些存储器,究竟有多少,然后在keil里需要怎么强制转换,最后,哪些data是可以直接访问的,哪些是需要总线控制的,额,大概就是这么一回事,我假设一下,比如edata是直接访问变量的,xdata是需要通过总线去访问变量的,那如果我edata在dma读取或写入的时候,理论上来说,cpu在调取xdata的变量,应该不会两个路线堵车了,谢谢大神
    回复 送花

    使用道具 举报

    该用户从未签到

    551

    主题

    9562

    回帖

    1万

    积分

    管理员

    积分
    14047
    发表于 2024-1-20 18:48:36 | 显示全部楼层
    当 CPU 只使用 edata 时,
    CPU 和 DMA 不会有为抢占 xdata 总线而产生的 总线总裁


    截图202401201842505455.jpg

    STC32G12K128:
    DMA 只会用到 8K的 xdata, 不会用到 4K的 edata;
    CPU  可以使用 8K的 xdata, 也可使用 4K的 edata;

    当 CPU 只使用 edata 时,
    CPU 和 DMA 不会有为抢占 xdata 总线而产生的 总线总裁


    截图202401201848046233.jpg

    截图202401201848327771.jpg


    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 148 天

    [LV.7]常住居民III

    19

    主题

    97

    回帖

    867

    积分

    高级会员

    积分
    867
     楼主| 发表于 2024-1-19 21:55:19 | 显示全部楼层
    顶一下
    回复 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 139 天

    [LV.7]常住居民III

    4

    主题

    234

    回帖

    914

    积分

    高级会员

    积分
    914
    发表于 2024-1-19 22:48:08 | 显示全部楼层
    这一页介绍的很明白
    无标题.png
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 157 天

    [LV.7]常住居民III

    34

    主题

    325

    回帖

    671

    积分

    高级会员

    积分
    671
    发表于 2024-1-20 08:24:56 | 显示全部楼层
    1.DMA与外设之间有单独的DMA总线。
    2、DMA是独立在CPU之外的的。
    3、DMA搬运数据的时候CPU可以做其他操作。
    纸上得到终觉浅,绝知此事要躬行。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    奋斗
    2024-2-27 16:37
  • 签到天数: 30 天

    [LV.5]常住居民I

    2

    主题

    34

    回帖

    102

    积分

    注册会员

    积分
    102
    发表于 2024-1-20 09:05:12 | 显示全部楼层
    喜欢看别人提问,总结不断进步
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:40
  • 签到天数: 127 天

    [LV.7]常住居民III

    3

    主题

    215

    回帖

    620

    积分

    高级会员

    积分
    620
    发表于 2024-1-20 09:15:35 | 显示全部楼层
    强制转换什么意思?
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    3 小时前
  • 签到天数: 139 天

    [LV.7]常住居民III

    4

    主题

    234

    回帖

    914

    积分

    高级会员

    积分
    914
    发表于 2024-1-20 09:30:15 | 显示全部楼层
    Snapdragon 发表于 2024-1-20 09:15
    强制转换什么意思?

    类似于a=(int)b*10;
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 10:40
  • 签到天数: 127 天

    [LV.7]常住居民III

    3

    主题

    215

    回帖

    620

    积分

    高级会员

    积分
    620
    发表于 2024-1-20 11:09:49 | 显示全部楼层

    这个和存储位置没关系,编译器自动完成的。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 159 天

    [LV.7]常住居民III

    0

    主题

    408

    回帖

    500

    积分

    高级会员

    积分
    500
    发表于 2024-1-20 11:46:31 | 显示全部楼层
    看下陈老师的教学视频
    靡不有初,鲜克有终
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 148 天

    [LV.7]常住居民III

    19

    主题

    97

    回帖

    867

    积分

    高级会员

    积分
    867
     楼主| 发表于 2024-1-20 12:34:38 | 显示全部楼层
    飞捷 发表于 2024-1-20 08:24
    1.DMA与外设之间有单独的DMA总线。
    2、DMA是独立在CPU之外的的。
    3、DMA搬运数据的时候CPU可以做其他操作。 ...

    我的意思是dma存储的位置应该是xdata位置吧,还是哪个位置,比如,我换个说法,我想dma不是最大缓存256个字节么,我cpu就一直在查询缓存了多少了,比如缓存了128字节,我就开始把前半段的数据转存出来,那这样就设置访问xdata,如果说xdata需要总线仲裁话,说明我不可能极快效率转存数据,或者是xdata是不需要经过总线的,那哪几个存储区是需要经过总线的么,谢谢你
    回复 支持 反对 送花

    使用道具 举报

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

    本版积分规则

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

    GMT+8, 2024-5-21 14:34 , Processed in 0.074771 second(s), 74 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

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