首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在两个TSI148 VMEbus控制器之间设置可靠DMA传输时出错

在两个TSI148 VMEbus控制器之间设置可靠DMA传输时出错
EN

Stack Overflow用户
提问于 2012-09-07 09:28:56
回答 1查看 635关注 0票数 1

我正在寻求帮助,最重要的是来自VMEbus专家。

我正在进行一个项目,目的是建立一个通信通道,从运行MVME4100 6.8的实时powerpc控制器(Emerson vxWorks )到运行Debian 6内核2.6.32的Linux Intel计算机(Xembedded XVME6300)。这个通道运行在VME总线上;两台计算机都在VME机箱中,并且都使用苔原Tsi148芯片组。英特尔计算机被显式配置为系统控制器,而实时计算机则不明确.

安装:对于Intel计算机,我编写了一个自定义驱动程序,该驱动程序创建了一个4MB内核缓冲区,并通过从窗口在VME总线上共享它;对于实时计算机,我设置了DMA传输,以重复转发准确的48640字节块;填充测试数据字节(零、一、二等),并快速连续地(如果可能的话,每32毫秒一次)从驱动程序中读取内核缓冲区,以便通过手动启动的Python程序查看数据是否到达正确。

期望:我希望从Python程序中看到相同的数据(0、1等)。我预计传输时间大致相当于所选择的总线速度(通常是290 us或145 us,取决于总线速度),加上合理的DMA设置开销(高达10 us?)我愿意接受更大的数字,比如数百个用户,如果这正是公共汽车通常需要的话)

结果:

  • 有时数据根本没有到达,“传输”的时间是~2000美元。
  • 有时数据到达可靠,但传输时间为98270 bus,或98470 bus,取决于所选的总线速度。

问题:我如何才能使传输可靠,并降低这些令人敬畏的延迟?下一步我应该找什么方向?

(如果可以的话,我想使用VMEbus标记)

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-19 10:56:48

我对这个问题的评论描述了我是如何让总线工作的:-确保总线两侧的2eSST 320确保DMA事务使用有效的块大小(最大的有效字节是4096字节)。

我实现了150 320MBytes/s的有效速度(总线可以达到320 320MBytes/s,但tsi148芯片以造成大量开销而闻名)。这对我来说已经够好了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12315376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档