PC104板卡驱动的设计方法.docVIP

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
以ISA_MDLL工程为例,说明ISA板卡驱动的设计步骤: 打开WinDriver,创建一个ISA卡驱动程序的工程,工程命名为isa_m,需要注意的是,如果所设计的ISA卡是采用I/O访问,则只选择I/O寻址的范围,而不对Memory、Interrupts、Registers这3个选项进行任何操作;如果采用Memory访问,则只选择Memory寻址的范围,而不对I/O、Interrupts、Registers这3个选项进行任何操作,一般而言,ISA卡主要采用I/O访问、Memory访问、I/O访问 Interrupts、Memory访问 Interrupts这4中操作方式中的一种。 在该ISA卡驱动程序的工程中,包含有这样几个文件: basetsd.h、bits.h、status_strings.h、wd_ver.h、windrvr.h、windrvr_events.h、windrvr_int_thread.h、isa_m_lib.h、isa_m_lib.c、status_strings.c,需要说明的是,isa_m_lib.h、isa_m_lib.c这两个文件的文件名与我所创建的ISA卡驱动程序的工程的工程名有关,如果工程名为xxx,则这两个文件的文件名分别为xxx_lib.h、xxx_lib.c。 打开VC。 建立一个空的DLL工程。 给该DLL工程创建8个头文件,命名分别为basetsd.h、bits.h、status_strings.h、wd_ver.h、windrvr.h、windrvr_events.h、windrvr_int_thread.h、isa_m_lib.h。将ISA卡驱动程序工程中的8个头文件的内容(basetsd.h、bits.h、status_strings.h、wd_ver.h、windrvr.h、windrvr_events.h、windrvr_int_thread.h、isa_m_lib.h)按照文件名一一对应的方式,分别复制到DLL工程创建的8个头文件中。 给该DLL工程创建2个源文件文件,命名分别isa_m_lib.cpp、status_strings.cpp,将ISA卡驱动程序工程中的2个源文件的内容(isa_m_lib.c、status_strings.c)按照文件名一一对应的方式,分别复制到DLL工程创建的2个源文件中。 给该DLL工程创建1个头文件,命名为ISA_MDll.h。在头文件ISA_MDll.h中声明要提供给用户的API函数和必要的数据结构,这里需要注意的是ISA_MDll.h文件的格式,该文件的格式可作为蓝本。 给该DLL工程创建一个源文件,命名为ISA_MDll.cpp。ISA_MDll.cpp文件用于实现头文件ISA_MDll.h中声明的API函数,这里需要注意的是ISA_MDll.cpp文件的格式,该文件的格式可作为蓝本。 给该DLL工程创建一个文件,命名为ISA_MDLL.def,该文件是为防止编译器在编译时改变ISA_MDll.h文件中的API函数的函数名,这里需要注意的是ISA_MDLL.def文件的格式,该文件的格式可作为蓝本。 Build整个工程,会产生一个ISA_MDLL.dll文件和一个ISA_MDLL.lib。 最终提供给用户的为3个文件,分别为ISA_MDLL.h头文件、ISA_MDLL.lib导出库文件、ISA_MDLL.dll动态链接库文件。 驱动编制的注意事项: 在用WinDriver创建ISA卡驱动程序工程isa_m时,我们会选择ISA卡的访问方式:I/O或Memory,如果选择I/O访问,并设置好I/O访问的寻址范围为0x300~0x30f,则在产生的isa_m_lib.h文件中,会找到以下两行代码: enum {ISA_M_IORange0_ADDR = 0x300}; enum {ISA_M_IORange0_BYTES = 0x10}; 需要指出的是,对这两行代码,需要做如下改动: WORD ISA_M_IORange0_ADDR = 0x300 ; //enum { ISA_M_IORange0_ADDR = 0x300 }; enum { ISA_M_IORange0_BYTES = 0x10 }; 即将代码“enum { ISA_M_IORange0_ADDR = 0x300 };”注释掉,而增加代码 WORD ISA_M_IORange0_ADDR = 0x300 ; 这样做的目的是为了便于用户能够自由设置ISA板卡的基地址。 执行完第1步修改后,就开始执行第2步修改。在WinDriver生成的isa_m_lib.h文件中,包含了所有对底层硬件进行操作的API函数,而大部分函数中都有这样两个参数:ISA_M_ADD

文档评论(0)

185****7617 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档