老快三

  • <tr id='tQBZQ1'><strong id='tQBZQ1'></strong><small id='tQBZQ1'></small><button id='tQBZQ1'></button><li id='tQBZQ1'><noscript id='tQBZQ1'><big id='tQBZQ1'></big><dt id='tQBZQ1'></dt></noscript></li></tr><ol id='tQBZQ1'><option id='tQBZQ1'><table id='tQBZQ1'><blockquote id='tQBZQ1'><tbody id='tQBZQ1'></tbody></blockquote></table></option></ol><u id='tQBZQ1'></u><kbd id='tQBZQ1'><kbd id='tQBZQ1'></kbd></kbd>

    <code id='tQBZQ1'><strong id='tQBZQ1'></strong></code>

    <fieldset id='tQBZQ1'></fieldset>
          <span id='tQBZQ1'></span>

              <ins id='tQBZQ1'></ins>
              <acronym id='tQBZQ1'><em id='tQBZQ1'></em><td id='tQBZQ1'><div id='tQBZQ1'></div></td></acronym><address id='tQBZQ1'><big id='tQBZQ1'><big id='tQBZQ1'></big><legend id='tQBZQ1'></legend></big></address>

              <i id='tQBZQ1'><div id='tQBZQ1'><ins id='tQBZQ1'></ins></div></i>
              <i id='tQBZQ1'></i>
            1. <dl id='tQBZQ1'></dl>
              1. <blockquote id='tQBZQ1'><q id='tQBZQ1'><noscript id='tQBZQ1'></noscript><dt id='tQBZQ1'></dt></q></blockquote><noframes id='tQBZQ1'><i id='tQBZQ1'></i>
                教育装□ 备采购网
                第六届图书馆论坛580*60

                PCI 设备 RTX 驱动开发方法 上海百速信息

                教育装备采购网 2018-03-28 09:15 围观412次

                  

                1. RTX 下操作外设时, 需要把设备从 Windows 移动到 RTX 下面,

                  具体移植方法可以参考 RTX Help 文档中间 Converting a Windows Device to an RTX Device 一节或者参考附件<<串口设备移植向导.doc>>

                  2. PCI驱动程序的特点

                  在设计驱动程序之前,首先要对欲控制的硬件设备进行细致地分析,更需要详细了解硬件设备的特性。硬件设备的特性会对驱动程序设计产生重大的影响。需要了解的最主要的硬件特性包括:

                  (1) 设备的总线结构

                  设备采用什么总线结构非常关键,因为不同的总线类型(如ISA和PCI)在许多硬件工作机制上是不同的,所以驱动程序设计※也不同。

                  (2) 寄存器

                  要了解设置的控制寄存器、数据寄存器和状态寄存器,以及这些寄存器工作的特性。

                  (3) 设备错误和状态

                  要了解如何判断设备的状态和错误信号,这些信号要通过驱动程序返回给用户。

                  (4) 中断行为

                  要了解设备产生中断的条件和使用中断的数量。

                  (5) 数据传输∏机制

                  最常见的数据传『输机制是通过I/O端口(port),也就是通过CPU进行数据读写。PC的另一种重要的传输机制是DMA,但PCI规范不包括从属DMA的说明。

                  (6) 设备内存

                  许多设备自身带有内存,PCI设备大多是Ψ 采用映射的方式映射到PC系统的物理内存。有的设备还要通过驱动程序设置设备的接口寄存器

                  3. RTX 驱动整体架构

                  使用 RTX Device Driver 开发向导, 选择支持

                  (1) Interrupt Service Routine (ISR)

                  (2) Support for Sharing an Interrupt

                  (3) Basic Port I/O Support

                  (4) Basic Mapped Memory Support,

                  即可生成 RTX PCI 设备驱动程序框〓架。

                  该程序框架分成两个函数, Driver 文件和 DriverFunc 文件:

                  Driver 文件主要包括 main 函数,中断服务程序和中断服务线程;

                  DriverFunc 文件↓主要是对 PCI 设备的基本操作函数, 包括 PCI 设备搜索, PCI 设备初始化,使能或关闭中断, 处理 PCI 设备共享中断, 以及 PCI 驱动程序资源清理等函数。

                  4. 完整的 RTX PCI驱动

                  基于RTX PCI 设备驱动程序框架, 用户需要添加相应的代码, 下面基于反射内存卡的 RTX 驱动进行分析。

                  反射内存卡的基本特点:

                  (1) PCI、PCIe、PMC、VME 外形, 节点之间组成环形连接或通过光纤 Hub 组成星型连接

                  (2) 节点之间数据确定性的传输延迟, 延迟小于 750us

                  PCI 反射内存卡的 RTX 驱动也分【成 Driver 文件和DriverFunc 文件两个文件。Driver 文件主要包括 main 函数,中断服务程序和中断服务线程, 下面是详细的分析:

                  (1) Main 函数:

                  Main 函数并不是 RTX PCI 驱动程序的◇一部分, 准确的讲它是如何使用 RTX PCI驱动程序的流程。用户需要做的工作:

                  a. 在 RTX PCI 设备驱动程序框架生成的 main 函数需要在设备初始化 (DeviceInit()) 完成︽之后与使能 PCI 中断之前添加设备打开(open())函数, 该函数的功能主要是创建信号量和初始〖化板卡.

                  b. 使能 PCI 中断之后, 用户即可调用 PCI驱动程序里的读写等函数写一段简单的读写测试程序。

                  (2) 中断服务程序:

                  这个函数接收到中断后交给中断服务线※程来处理, 用户一般不需要改动。

                  (3) 中断服务线程:

                  中断服务线程主要完成读取和记录 PCI 板卡的中断信息, 释放相关的信号量等工作, 一般不完成具体的中断处理工作。PCI 驱动程序一般还提供一个函▅数来捕捉这些释放的信号量, 完成中断具体含义的解析工作。

                  DriverFunc 文件主要是对 PCI 设备的基本操作函数, 包括 PCI 设备搜索, PCI 设备初始化,使能或关闭中断, 处理 PCI 设备共享中断, 以及 PCI 驱动程序资源清理, 数据读写, 发送和接收消息①类中断等函数。下面是详细的分析:

                  (1) DeviceSearch 函数

                  这个函数根据 PCI 设备的 Vendor ID 和 Device ID 搜索 PCI 设备, 返回 PCI 配置信息和 slot Number. 用户修改 Vendor ID 和 Device ID 即可。

                  (2) DeviceInit 函数

                  PCI设备初始化函数. 该函数中间调用了两个RTX 系统函数RtTranslateBusAddress() 和 RtMapMemory(), RtTranslateBusAddress() 作用为把 PCI 设备地→址转换为 CPU 可以直接访问的物理地址, RtMapMemory() 函数把物理地址映射到虚拟地址。映射到虚拟♀地址空间后 ring3用户即可以读写 PCI 内存空间或者 I/O 空间了。用户需要关注的是物理地址到虚拟地址映射的地址范围,一般设置为 4K Bytes. RtMapMemory() 函数默※认最大可以映射的地址范围为 64M Bytes, 如果需要更大的范围, 可以参考内存管理一节。

                  (3) Enable/Disable Interrupts On Chip 函数

                  使能或者关闭 PCI 设备上的中断。用户根据 PCI 设备进行修改。

                  (4) IsMyInterrupt函数

                  RTX 下 PCI 设备中断号可以︾共享。如果有 RTX 下 PCI 设备共享, 需要在该函数中间区分是否是该设备的中断.

                  (5) DeviceCleanup 函数

                  该函数释放中断句柄和解除物理地址于虚拟地址之间的映射。用户基本不需要修改该函数。

                  (6) RFM2gOpen 函数

                  反射内存◤功能函数。该函数的功能主要是为 DMA 通道,发送和接收Event(反射内存的一种消息类中断)等硬件功能模块创建信号¤量和初始化板卡。为了防止对硬件资源的访问冲突, 使用这些硬件资源前需要先拿到信号量, 使用结束后释放这些信号量。

                  (7) RFM2gEnableEvent函数

                  反射内存功能函数。使能板卡接收消息类中断。

                  (8) RFM2gSendEvent 函数

                  反射内存功能函数。向其它节点发送消息类中断。

                  (9) RFM2gWaitForEvent函数

                  反射内存

                点击进入上海百速信息技术有限公司展台查看更■多 来源:教育装备采购网 作者:上海百速信息技术有限公司 责任编辑:张肖 我要投稿
                普教会专题840*100

                版权与免责声明:

                ① 凡本网注明"来源:教育装备采购网"的所有作品,版权均属于教育装备采购网,未经本网授权不得转载、摘编或利用其它方式使用▅。已获本网授权的作品№,应在授权范围内使用,并注明"来源:教育装备采购网"。违者本网将追究相关法律责任。

                ② 本网凡注明"来源:XXX(非本网)"的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,且不承担此类作品侵权①行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。

                ③ 如涉及作品内容、版权等问题,请在作品发表之日起两周内与本网联系,否则视为放弃相关权利。

                2022云展会300*245