导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→初学者:求助:8019的读写正确,但是remote dma不[shanse]

 *第4493篇: 初学者:求助:8019的读写正确,但是remote dma不正确,remote dma 端口一直为高阻,哪位高手可以帮忙解决呀,多谢了!

  
楼 主:shanse 2002年8月13日09:37
 初学者:求助:8019的读写正确,但是remote dma不正确,remote dma 端口一直为高阻,哪位高手可以帮忙解决呀,多谢了!
  
2楼:gdtyy 2002年8月13日10:25
 不可能的,你的起始页和长度寄存器配对了吗?RAM中有数据吗?是不是RAM中本来就是FF。
  
3楼:shanse 2002年8月13日10:43
 这些都没错,我现在怀疑是pstart 和pstop不对。
因为网卡的物理地址能够通过remote dma读取。所以我怀疑是缓冲区的初始化有问题,但是
找不到问题在那里。我从仿真器的外部数据窗口中看到pstart和pstop和我初始化中设置的
值不同,是不是错了?
  
4楼:shanse 2002年8月13日10:48
 我现在进行remote dma write,看到dma端口中的数据总是和CR的值相同,实在不明白是怎么回事
  
5楼:gdtyy 2002年8月13日12:43
 你看手册了吗?
    你没有看懂手册,pstart和pstop是接收缓冲区循环队列头尾页指针,用于确定队列大
小。读写SRAM要先设置RAM起始地址和数据长度,再读写FIFO口(REG10)。发送以太网帧数
据要先给出发送缓冲区起始页地址和发送长度,再发送。接收以太网帧时判断读写指针是否
差1,若不是则收到包,收到的包里有下一页地址,把读指针改成此值,写指针由硬件负
责,它会自动修改,当读写指针相等,硬件停止收包。(初始化时 读指针=写指针+1 即
CURR=BNRY+1)
    所谓DMA是指给出起址和长度就可以读写,每次地址自动加1。普通RAM操作要先发地址
再处理数据,速度慢。“远端”指CPU接口侧;“本地”指8019的硬件收发电路侧。
    8019收自动处理收缓冲循环队列,你只需配制队列起址页和终址页,初始化读写指针以
及修改读指针即可;发送要自己负责,你要给出发送数据起址页和长度,8019就会自动发
送。SRAM中数据的读写通过远端DMA的FIFO进行,给出起址和长度,读/写FIFO口即可,你自
己保证数据读写的正确性。
  
6楼:shanse 2002年8月13日16:35
 我知道了,多谢了!!!

>>>>>>对该主题发表你的看法

本主题贴数6,分页: [第1页]


[上一篇主题]:C51编程:C51中嵌入汇编的问题

[下一篇主题]:初学者:有谁知道怎样用WOERD打偏导数符号呀?