logo资料库

Ardence Rtx环境搭建&开发应用程序&驱动流程.docx

第1页 / 共10页
第2页 / 共10页
第3页 / 共10页
第4页 / 共10页
第5页 / 共10页
第6页 / 共10页
第7页 / 共10页
第8页 / 共10页
资料共10页,剩余部分请下载后查看
RTSS程序
RTSS DLL
RTDLL
Ardence RTX 简介 作为控制系统的开发平台,Windows XP 具有如下优点:  高性价比;  可运行多种应用程序;  支持多种开发工具;  丰富的 Win32 应用程序接口;  大量的熟悉本系统的开发支持人员和最终用户。 有很多其他环境有使用 Windows 的要求,譬如制造车间,医疗设备,仿真器 械,测试设备和通信器材。这些环境的共同特点就是它们都要求系统拥有硬实时特 性。由于 Win32 应用程序运行在 Windows 用户层级别,而所有硬件管理都在核心 层,Win32 应用程序不能直接访问硬件,必须通过系统服务调用来获得核心层级 别的访问。这就限制了 Windows 系统的实时性,也造成了利用其开发实时控制系 统的局限性。 总的来说,WindowsXP 系统不能成为一个实时操作系统,主要有以下几点原 因:  线程优先级太少;  不确定的线程调度机制;  优先级倒置,尤其体现在中断处理中。 通过附加软件就可以在 Windows 上实现所需要的硬实时特性。否则的话,开 发者必须增加一台实时计算机,并承担额外的费用和复杂度。下文讨论了 Ardence 公司的硬实时产品 RTX,其中包括 RTSS 实时子系统(Real-Time Sub-System), 它是专门为 PC 架构的 Windows 平台设计的。 Ardence RTX 利用 Windows 的这个特点,按照微软 Windows XP 驱动开发工具、(Driver Development Kit,DDK)和 HAL 模型对 Windows 的实时功能进行了扩展,具体体现在以下几 个方面:  通过修改 Windows HAL,增加了 Real Time HAL Extension,简称 rtHAL,它提供了对
拦截中断和直接访问硬件的支持。  利用 DDK,开发了一套完全独立于 Windows 内核的中断处理、线程调度、事件同  步机制。 RTX 的优先级高于 Windows 的内核。当有硬件中断到来时,rtHAL 会首先拦截该中 断,交给实时子系统处理,如果实时子系统不处理该中断,中断会被交给 Windows 内核去处理。 可见通过 rtHAL、独立的中断处理、线程调度、事件同步机制及优先执行,使得 RTX 能够 真正避开 Windows 内核,实现实时处理。RTX 和 Windows 的关系如下图所示: RTX 实现为一套动态库和静态库的集合,它增加了一个子系统 RTSS 作为 Windows 系统的内核设备驱动与 HAL 的扩展(见图 3.2)。该子系统实现了对实时对象的调度,通过一 套被称作 RtWinAPI 的实时 API(RtWinAPI 同时也被 Windows CE 和 PharLap ETS 支持)提供了 对这些对象的访问方法。RtWinAPI 可以被标准 Win32 环境和 RTSS 环境调用。虽然在 Win32 环境中使用 RtWinAPI 不能提供在 RTSS 下的确定性,但是却可以允许应用程序在更
加友好的 Win32 编程环境中开发而不是 DDK 环境。将 Win32 程序转化为 RTX 程序只需要 重新链接一套不同的库而已。 Windows 系统的服务控制管理器直接将 RTX 进程和动态链接库(DLL)的可执行映像 装入内核的不分页内存中。RTSS 有其独立的进程线程管理、进程间通讯、时钟、中断、IO 管理等机制。 RTSS 线程具有 128 个优先级,分别对应 Win32 的 32 个线程优先级 RTSS 的线程优先级都要高于相应Windows 功能的线程,为实时任务的优先 执行提供了保障。在RTX 环境下完成实时任务,实时任务运行在Ring 0 级别,以 提供最好的时间响应特性。在Win32 环境下开发用户界面程序,用户程序运行在 Ring 3 级别,这里可以利用Windows 的所有资源。RTX 与Windows 之间通过IPC 进行高速实时的数据交换。IPC是一个Unix 标准通讯机制,它提供了同一台主机不 同进程之间可以相互通讯的方法。基本的IPC 处理机制有3 种:共享内存、信号量 和消息队列。Windows 下基于RTX 的实时控制系统结构如图
环境搭建 环境搭建很简单,执行安装程序,输入序列号,最后重启电脑就可以了。 需要注意的是,重启电脑之后: 在系统启动项的选单里多了两项: Microsoft Windows XP Professional - RTX MP Shared Microsoft Windows XP Professional - RTX MP Dedicated 这两项的区别位,在多核的机器上,RTX MP Shared是一个处理器同时支持RTX和 Windows运算;其他的处理器为Windows独享。这种方式是默认的配置,而选择RTX MP Dedicated的时候,RTSS会在系统启动的时候自动选择逻辑上最后一个处理器独 占运行,而windows系统运行于其他的处理器上。不过在编程上没有影响。 开发应用程序
RTX 支持以下几种程序和对象:   RTSS 程序 RTSS 程序是运行在 RTX 子系统中的任何类型的程序,扩展名为.rtss。 RTSS DLL 一个 RTSS DLL 不是真正的 DLL,而是一个 RTSS 程序(扩展名也 是.rtss),但可以导出函数被其他 RTSS 程序使用。因为 RTSS 进程在内核 空间运行,其他.rtss 程序可以访问和使用 RTSS DLL 导出来的函数。  RTDLL RTDLL 可以通过标准的微软 LoadLibrary 和 FreeLibrary 调用进 行加载和卸载的动态库。当最后一个引用它们的 RTSS 进程中止时,它们会 自动从内存中卸载。扩展名为.rtdll。 RTDLL 只在 RTX 环境中受支持,Win32 程序不能调用它们。但是开发 者可以将相同的代码编译为 DLL 和 RTDLL。 关于 RTX 编程接口 RTX 为 Win32 环境提供了一个最重要的实时编程接口,并与 Win32 编程接口兼容。 RTX 应用程序在 Win32 和 RTSS 两个环境中都可以使用实时扩展,程序也可以在实 时环境中使用 Win32 支持的 API。RTX 应用程序编程接口由以下三个接口集组成:  实时 API(RTAPI)  Win32 支持的 API   C++库支持的 API C 运行时库支持的 API 实时 API(RTAPI)
RTAPI 分为两种:  纯粹实时接口 - 全新的,由实时扩展提供。这些 RTAPI 函数没有对应的 Win32 函数,并且都以 Rt 开头。  基于 Win32 的实时接口 - 由 Win32 函数扩展而来,并且和 Win32 平台的 函数有点类似。但是以 Rt 开头,并且在功能上与 Win32 函数也不完全相 同,例如,RtCreateMutex,它与 Win32 平台的 CreateMutex 函数在功能 上就不完全相同。 Win32 支持的 API 概述 跟 Win32 函数功能完全一样,并被 RTSS 环境所支持。函数名没有以 Rt 开头,因为 在两个环境中的功能和调用接口完全一样。一个例子是 ResumeThread。 Windows 驱动 IPC API(RTKAPI)概述 Windows 驱动进程间通讯 API(RTKAPI)函数用来从 Windows 内核设备驱动访问 RTX IPC 机制。这些 RTKAPI 调用类似于它们的 RTAPI 对应的函数调用。例如, RtkOpenSemaphore 类似于 RtOpenSemaphore。 使用 RTKAPI 的方式与使用 RTAPI 的方式相同,但是是在 Windows 内核环境。所有 的 RTKAPI 接口函数在最前面以 Rtk 开头。 RTKAPI 还包括一个 include 文件(RtkApi.h) 和一个连接库 (rtx_rtk.lib)。 注意:RTK 函数只能在一个 Windows 设备驱动的 PASSIVE_LEVEL 层来调用。(这个在 RTX 的帮助文档中有更详细的说明)。 驱动开发 RTX 提供了一套机制,可使现有的 Windows PCI/ISA 设备转换成 RTSS 程序可控的 设备。也就是说,一个物理的设备,可以在 windows 和 RTSS 之间转换,但是不可 以同时使用 windows 和 RTSS 两套系统。
转换需要两步: 1. 添加 RTX INF 支持。 在控制面板中打开 RTX Properties,点击 hardware,Setting, 如上图所示,对需要转化的设备点击右键,选择 Add RTX INF Support,选择 Apply。 这是弹出对话框
单击 OK。 2. 更新 Windows 设备驱动。 在设备管理器中选择刚才的设备,右键,update driver,等待自动完成 之后就会在 RTX Drivers 里边看到刚选择的设备。 修改 RTX PCI 设备属性。 可以改变一个 PCI 设备的 IRQ,并选择其特性,即是否与其他 RTX 设备共享同一个 IRQ。 对于任何使用 line-based 中断的 PCI 设备(both MSI-capable and non-MSI-capable) 来说,IRQ 都是必需的。 提示:不能在非 ACPI Windows 系统上修改设备资源
分享到:
收藏