weichaozhou
驱动牛犊
驱动牛犊
  • 注册日期2002-08-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1257回复:9

类别

楼主#
更多 发布于:2002-08-13 10:00
是用视频流微端口驱动呢还是自己写一个功能驱动呢
weichaozhou
驱动牛犊
驱动牛犊
  • 注册日期2002-08-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-13 10:10
不好意识,初次法帖,我的意思是在视频采集驱动中,基于PCI总线,是采用视频流微端口驱动呢还是写一个PCI驱动加上视频采集功能,我的帧频为419/秒,象元数128*128,12位,也就是说2毫秒有一次中断,我用PCI驱动加上视频采集功能,偶尔会丢帧,所以想用视频流微驱动会不会好一点,望知道的高手见告,先谢了。
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-13 10:55
会好些的,数据不上usermode嘛,无论显示还是存盘效率都会高些,只是你的图像好怪,帧率419,高速摄影吗?
weichaozhou
驱动牛犊
驱动牛犊
  • 注册日期2002-08-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-14 10:12
谢谢。对,是高帧频CCD。可我现在都是在驱动中做的,中断驱动,在中断处理函数中设dma采至内存缓冲区,win32程序仅仅引用映射的内存地址而已。现在图像可逐帧采集,但在存到内存中时遇到麻烦。我用driverworks中的例子改的,wdm方式,可在分配大约90m的内存时不能调用mmAllocateContinguousMemory分配物理地址连续的缓冲区,明明这个函数在ntddk。h中定义了,头文件也包含了,编译器硬说找不到;用extern语句申明一下吧,链结时又告诉找不到,将ntddk下libchk中的所有lib文件都用上,还是找不到,我苦。只好用exallocatepool,指定nonpagedpool类型,编译通过,从内存管理上看倒是分配了,可好像并不是物理地址连续的。一用于dma就重启。唉。那位仁兄有何高见,能否指点一二。
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-14 10:39
你的卡不能支持scatter/gather吗,如果支持就不用申请这么大的连续内存了,对了,为什么要申请90M这么大的缓冲啊,没有必要吧,一帧数据才几十K,通常视频用内核流编程时视频信号是每次取一帧数据的,缓冲个几帧足够了
weichaozhou
驱动牛犊
驱动牛犊
  • 注册日期2002-08-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-08-15 09:06
用的是s5933,确实不支持scatter/gather,在看到如下帖子,不知道行不,我要试一下。
引用:
--------------------------------------------------------------------------------
在 DriverWorks 的 WDM 里,如何申请一片连续的实存,
即如何实现 NTDDK 里的这个函数:
PVOID
MmAllocateContiguousMemory(
IN ULONG NumberOfBytes,
IN PHYSICAL_ADDRESS HighestAcceptableAddress
);

救命啊!
--------------------------------------------------------------------------------



new (NonPagedPool) ulSize;是不是就OK啦 ???
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-08-15 09:34


new (NonPagedPool) ulSize;是不是就OK啦 ???


是不是在别人的程序中看到的啊,我也看到过,不过new是自己定义的operator,调用的是ExAllocatePool(Type, Size)
gung
驱动中牛
驱动中牛
  • 注册日期2001-06-10
  • 最后登录2008-04-21
  • 粉丝0
  • 关注0
  • 积分25分
  • 威望3点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-08-15 09:34


new (NonPagedPool) ulSize;是不是就OK啦 ???


是不是在别人的程序中看到的啊,我也看到过,不过new是自己定义的operator,调用的是ExAllocatePool(Type, Size)

还想问一句,一定要90M的连续内存吗?
weichaozhou
驱动牛犊
驱动牛犊
  • 注册日期2002-08-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-08-15 10:29
对,需要实时采集数据作分析。但好像不对,也许真的如你所说。唉,准备转入视频流驱动。但ddk中的testcap没有中断和dma。而且我怎么找不到它在什么地方填充的红绿兰条纹的数据,在videoquedue排队后 处就不知道它在什么地方处理了。
weichaozhou
驱动牛犊
驱动牛犊
  • 注册日期2002-08-12
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-08-15 14:16
原来在中间设了一个timer。可如果我用中断代替timer,能否满足要求呢。另外,自定义格式的数据是否不存为avi格式尔仅包含原始数据呢?问题多多,等有了心得后再帖。但能否有一些好的例子呢,除了bt848和testcap外
游客

返回顶部