阅读:1905回复:5
请教高手用windriver关于pci卡驱动问题
用windriver的某个函数可以获得pci卡几个item的各个参数,有的是用于i/o,有的用于mem,有的用于中断,请问可不可以随便改动各个item的属性,比如i/o的改成mem,是中断的把中断号改变,究竟可不可以进行正常操作。
另外windriver还有一个术语bar,好像和item类似,但不是一对一的关系,请问两者有什么异同。 进行中断时是不是只要把具有中断性质的item联合中的中断句柄给 中断线程有效函数,然后中断来临时就可以自动调用回调函数了 请执教,谢谢!! |
|
最新喜欢:lw535 |
沙发#
发布于:2002-11-25 21:15
你好,我也是一个初学者。我想请问一下WINDRIVER的哪个函数可以访问PCI口的MEM或IO。
|
|
板凳#
发布于:2002-11-25 22:01
用windriver wizard 可以生成一个诊断程序,可以列出pci所有的items,items 里有个联合,比如是mem,在mem相关结构里,可以找到偏移地址,然后用trans(具体函数记不请了)可以实现。
在windriver的samples文件架里有一个 int_io的例子,有大致的对 字,字节,字节串的读写操作,有什么问题共同探讨 bye |
|
|
地板#
发布于:2002-11-28 00:45
用windriver的某个函数可以获得pci卡几个item的各个参数,有的是用于i/o,有的用于mem,有的用于中断,请问可不可以随便改动各个item的属性,比如i/o的改成mem,是中断的把中断号改变,究竟可不可以进行正常操作。
另外windriver还有一个术语bar,好像和item类似,但不是一对一的关系,请问两者有什么异同。 进行中断时是不是只要把具有中断性质的item联合中的中断句柄给 中断线程有效函数,然后中断来临时就可以自动调用回调函数了 请执教,谢谢!! 第一,PCI卡的空间是IO空间还是MEM空间,是硬件设计硬性指定的,软件上是没办法修改的。除非硬件修改其逻辑。修改中断号也是没什么实际意义的。PCI的中断是共享的,很多设备共用一个相同的中断号。术语BAR是指的PCI的配置空间里面的基地址空间。好象最多可以是6个,在硬件设计上用的,比如我现在要设计一块有1个IO空间,2个MEM空间的(空间实际上在软件上来说就是分配的一块地址范围)。我就得用其中3个BAR寄存器(硬件上),以告诉计算机系统我要3块地址范围。至于中断,我没写过,我做DMA测试的时候是用的查询方式。 如果回答对你有所帮助,请给分! 我们可以对WINDRIVER多多交流!!! |
|
|
地下室#
发布于:2002-12-04 15:22
各位大虾,WINDRIVER中的item是什么意思,用WINDRIVER写驱动的流程是什么?也就是一个完整的驱动程序包含哪几个文件?怎样把WINDRIVER生成的诊断程序转换成最终的驱动程序?也就是怎样使用VC。
|
|
|
5楼#
发布于:2002-12-04 17:40
各位大虾,WINDRIVER中的item是什么意思,用WINDRIVER写驱动的流程是什么?也就是一个完整的驱动程序包含哪几个文件?怎样把WINDRIVER生成的诊断程序转换成最终的驱动程序?也就是怎样使用VC。 1、item是指卡的IO、Memory、interrupt信息; 2、流程:WD_Open()->WD_Version()->WD_PciScanCards()-> WD_PciGetCardInfo()->WD_PciConfigDump()-> WD_CardRegister()->读写Memory、DMA设置、中断设置 ->WD_CardUnregister()->WD_Close(); 3、我也是初学,请各位大侠多指教。 |
|