jlyz
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2003-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1826回复:9

Windriver写PCI9054的主模式DMA驱动的问题!

楼主#
更多 发布于:2003-01-15 20:07
数据来源是FIFO,PCI9054作进行主模式DMA,但是看了PLX提供的Visual C++原码却始终不明白对于外部数据源使用FIFO情况下,DMA Channel 0 Local Address Register该写进去什么啊?


进行DMA操作时的Local Memory 是指的什么啊?(对于外部用FIFO)


万分感谢!
jst7792
论坛版主
论坛版主
  • 注册日期2001-12-10
  • 最后登录2006-11-16
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-01-16 13:00
不管是什么外设,总归是要有个地址的吧.
兄弟们,给点分吧
jlyz
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2003-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-01-16 16:16
用的是同步FIFO啊,FIFO没有地址线啊,请教斑竹怎么解决啊??
那么local memory的address信息怎么知道啊????

多谢了!
flying
驱动小牛
驱动小牛
  • 注册日期2002-08-01
  • 最后登录2016-06-19
  • 粉丝0
  • 关注0
  • 积分197分
  • 威望70点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2003-01-19 11:43
FIFO没有地址,但你可以人为的定一个啊,
比如将某些地址线接成你FIFO的片选来实现!
jlyz
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2003-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-01-20 20:52
FIFO好像没有片选信号啊!
在管脚上没有查到片选信号!
请支招!
flying
驱动小牛
驱动小牛
  • 注册日期2002-08-01
  • 最后登录2016-06-19
  • 粉丝0
  • 关注0
  • 积分197分
  • 威望70点
  • 贡献值0点
  • 好评度19点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2003-01-20 21:29
你可以试着找到FIFO的允许信号,用LA的高位地址线通过组合逻辑电路来产生一个“地址”信号(相当于片选信号)去控制你的FIFO上的允许信号,而低位地址线可以不接,这样只有在你设定的地址范围内才会选中FIFO进行操作,这不就等于是‘片选’信号了吗?
mardux
驱动小牛
驱动小牛
  • 注册日期2002-11-21
  • 最后登录2004-09-28
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-01-22 20:27
同步FIFO的读时钟,写时钟,读使能,写使能,输出使能
而使能信号不就可以看作片选了吗?
jlyz
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2003-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-01-22 21:40
是啊,这的确可以作为片选信号,我也是这样做的。
我现在疑惑的是在写DMA的Windriver程序时,它提供的DMA函数需要一个local bus 地址,也就是本地端存储地址,从哪儿读取数据。
我用的是FIFO,所以我不知道该如何设置这个参数,即local memory 地址怎么写啊??难道写“FFFFFFFF”吗?

请大家支着!谢谢!
jlyz
驱动牛犊
驱动牛犊
  • 注册日期2002-03-22
  • 最后登录2003-06-02
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-01-22 21:44
Windriver具体用到的函数是:

BOOL P9054_DMAReadWriteBlock (P9054_HANDLE hPlx, DWORD dwLocalAddr, PVOID buf, DWORD dwBytes, BOOL fIsRead, P9054_MODE mode, P9054_DMA_CHANNEL dmaChannel)

有疑惑的就是dwLocalAddr这个参数怎么设置,不设置我也没有办法发起DMA操作啊?

谢谢了!
hmwhmw
驱动牛犊
驱动牛犊
  • 注册日期2002-11-23
  • 最后登录2011-06-23
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-09 20:58
随便写个什么值,还可以把DMA寄存器设为固定地址,只要控制好fifo的片选就行。
游客

返回顶部