windows nt环境下fddi网卡驱动程序设计2行政论文范文大全.docVIP

windows nt环境下fddi网卡驱动程序设计2行政论文范文大全.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
windows nt环境下fddi网卡驱动程序设计2行政论文范文大全.doc

windows nt环境下fddi网卡驱动程序设计2行政论文范文大全 windows nt环境下fddi网卡驱动程序设计 第五节 开发环境与调试方法 开发环境: fddi网卡驱动程序的开发环境为nt server 3.51,sdk,ddk for workstation 3.51, vc++4.1,硬件平台为586。 调试平台: 主机为nt server 3.51,windbg32 目标机为nt workstation3.51 (check 944) 调试方法: ※利用dbgprint把目标机上关键信息通过串口传到主机进行分析,以得出ndis驱动程序的调度机制和运转状况; ※利用assert产生异常断点,由主机对异常进行控制 ※自定义宏,进行分级控制,以根据不同情况产生不同调试信息 第四章 与smt移植相关的问题讨论 在本yhfddi网卡驱动程序中,smt的移植是极其关键的一部分,主要承担了驱动程序中硬件初始化和中断延迟处理。但由于smt是相对独立的软件,这样就有一个ndis wrapper与smt间参数传递的问题。所以本章主要讨论miniport驱动程序与smt的关系和移植smt过程中初始化的要求、中断处理的要求,ndis wrapper与smt如何传递参数。 (一)miniport fddi网卡驱动程序与smt的关系。 在第一章已经谈及网卡驱动程序主要实现osi参考模型中的物理层和mac层。而对于fddi网络的物理层又可分为介质相关子层和介质无关子层。 对于我们的fddi/pci是基于x.3.19、x3.148、x3.166和x3.229而实现的。 smt在整个iso七层模型中属低两层范畴。下图是iso模型与fddi层次的对应关系,从而可知fddi miniport驱动程序在nt网络结构中的位置。 即在windows nt fddi网卡驱动程序应包含smt,实现fddi拓扑环上的站管理。 而在驱动程序内部smt主要是在miniport驱动程序中的中断延迟处理上边缘服务中实现的,也可以说是将smt嵌入中断延迟处理程序中,实现ndis接口对smt的正确调度。 yh-fddi驱动程序的实现可分为硬件无关部分和硬件相关部分。  移植smt过程中初始化的要求. 这里的初始化主要是指硬件初始化,包括寄存器的初始化和数据结构的初始化,由smt共用的硬件相关例程库中硬件初始化部分来完成. 我们在开发过程序是调用fddi_main(bdd_t*bdd)这个函数来调用smt共用的硬件相关例程库的.可见使用fddi_main(bdd_t*bdd)时,需要传递bdd这个参量,而bdd_t这个数据结构的定义如下: 它包含了各类硬件寄存器的基址,所以要对其进行正确赋值就必须首先在nt的内存中映射一块虚存与网卡内存相对应,也就实现了bdd_t结构的赋值,对fddi_main(bdd_t *bdd)的正确调用. 因此,我们在调用fddi_main前首先将网卡上寄存器内存空间映射到nt的虚存空间上,并将bdd结构正确赋值.以映射bsi_phy_base为例,具体过程如下: pchar destination; bdd_t *bdd; ndis_physical_address physicaladdress; ulong baseaddress; ndis_status status; baseadress =0x0d0000+bsi_phy_base; ndissetphysicaladdresshigh(physicaladdress,0); ndissetphysicaladdresslow(physicaladdress,baseaddress); status=ndismmapiospace( (pvoid *)amp;destination, miniportadapterhandle, physicaladdress, bsi_phy_len ); bdd-bsi_vir_base=(pchar) destination; adapter- bdd-bsi_vir_base= bsi_vir_base; /*对adapter结构中的bdd结构赋值,以便在其它上边缘函数中使用这些虚存基地址*/ 中断处理要求. 对于中断处理,在smt中主要调用cspintrhandandler()来实现.我们的fddi网卡驱动程序是miniport方式的,若在isr中做此处理将占用大量系统资源,使系统崩溃,所以我们采用只在isr中进行中断的排队,而在dpc中调用cspintrhandler()来完成中断处理. 在中断处理方面还有一个中断屏蔽和中断使能的问题,这两方面smt并不提供,故我们要正确处理. 具体处理方法见第三章. ndis

文档评论(0)

sis_lxf + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档