CN103257865A - 基于Wince7下实现应用程序控制底层硬件的方法 - Google Patents

基于Wince7下实现应用程序控制底层硬件的方法 Download PDF

Info

Publication number
CN103257865A
CN103257865A CN2013101773534A CN201310177353A CN103257865A CN 103257865 A CN103257865 A CN 103257865A CN 2013101773534 A CN2013101773534 A CN 2013101773534A CN 201310177353 A CN201310177353 A CN 201310177353A CN 103257865 A CN103257865 A CN 103257865A
Authority
CN
China
Prior art keywords
application program
hardware
stream interface
interface device
device drives
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2013101773534A
Other languages
English (en)
Inventor
崔凯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shandong Chaoyue Numerical Control Electronics Co Ltd
Original Assignee
Shandong Chaoyue Numerical Control Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shandong Chaoyue Numerical Control Electronics Co Ltd filed Critical Shandong Chaoyue Numerical Control Electronics Co Ltd
Priority to CN2013101773534A priority Critical patent/CN103257865A/zh
Publication of CN103257865A publication Critical patent/CN103257865A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Telephone Function (AREA)

Abstract

本发明公开了基于Wince7下实现应用程序控制底层硬件的方法,属于计算机技术领域,以Windows Embedded Compact7嵌入式操作系统为软件平台,以嵌入式处理器为硬件平台;方法如下:(1)建立一个流接口设备驱动,将所要操作的底层硬件的代码放到流接口设备驱动中;(2)在应用程序中添加上述流接口设备驱动的实例;(3)在应用程序需要操作底层硬件的地方,通过IOCONTROL消息来调用流接口设备驱动中的底层硬件的代码,实现应用程序对底层硬件的操作。本发明的基于Wince7下实现应用程序控制底层硬件的方法,实用性强,在保证系统安全性和稳定性的同时、不影响系统的实时响应性能。

Description

基于Wince7下实现应用程序控制底层硬件的方法
 
技术领域
本发明涉及一种计算机技术领域,具体地说是基于Wince7下实现应用程序控制底层硬件的方法。
背景技术
Wince7(Windows Embedded Compact7嵌入式操作系统)是微软推出的最新的嵌入式实时操作系统。它比之前版本的WINCE具有更强大的性能,以及更高的安全性和稳定性。 
对于WINCE嵌入式系统开发者来说,在应用程序中加入操作底层硬件的代码是一种非常有用的开发手段。这样做的好处是应用程序能方便的利用操作系统提供的API接口直接对硬件进行操作。对于没有底层驱动源代码的独立软件开发商来说,这是操作硬件唯一的选择。对于有底层驱动源代码的OEM开发商来说也是有用处的,因为在某些场合,直接用系统API比在底层驱动中靠自己来实现复杂的硬件操作来得简单。因此WINCE7之前的版本都支持应用程序直接对底层进行操作。
但在WINCE7上这样做就行不通了。因为WINCE7为了提高系统的稳定性和安全性(主要是为了防止应用程序可能的异常操作而影响系统的稳定性,以及抵御黑客程序对系统的恶意攻击),剥夺了应用程序操作底层硬件的权限:禁止应用程序直接操作底层硬件! 很明显, 那些直接操作硬件的应用程序,会因为得不到操作系统的支持而无法在WINCE7上运行。又因为WINCE7是一个全新的操作系统,相关参考资料较少,因此这个问题的解决就变得十分紧要和迫切。
发明内容  
本发明的技术任务是针对以上不足之处,提供一种行之有效的解决了WINCE7下应用程序无法直接控制底层硬件的问题,实用性强,在保证系统安全性和稳定性的同时、不影响系统的实时响应性能的基于Wince7下实现应用程序控制底层硬件的方法。
本发明解决其技术问题所采用的技术方案是:以Windows Embedded Compact 7嵌入式操作系统为软件平台,以嵌入式处理器为硬件平台;所述方法如下:
(1)、建立一个流接口设备驱动,将所要操作的底层硬件的代码放到流接口设备驱动中;
(2)、在应用程序中添加上述流接口设备驱动的实例;
(3)、在应用程序需要操作底层硬件的地方,通过IOCONTROL消息来调用流接口设备驱动中的底层硬件的代码,从而实现应用程序对底层硬件的操作。
以Windows Embedded Compact 7嵌入式操作系统为软件平台,以Freescale公司的IMX53嵌入式处理器为硬件平台,详细步骤如下:
(1)、建立一个流接口设备驱动,将所要操作的底层硬件的代码放到流接口设备驱动中;
(2)、在Windows Embedded Compact 7嵌入式操作系统启动的时候,OEM 适配层OAL.exe首先加载CE内核kernel.dll,然后kernel.dll加载device.dll,device.dll会加载devmgr.dll;devmgr.dll是设备管理器模块,负责流接口设备驱动的加载、卸载和交互操作;
(3)、应用程序通过调用函数CreateFile打开设备管理器模块并获得相应的句柄,然后通过调用IOCONTROL访问流接口设备驱动;
在流接口设备驱动中添加的操作硬件的代码,和OEM 适配层合作,共同来对硬件进行控制和访问。
OEM 适配层(OEM Adaptation Layer,简称OAL),用来引导系统核心映像和初始化、管理硬件。它是BSP驱动的一部分。BSP(board support package,板级支持包),是介于硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的应用程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。在Wince7系统软件的组成中,就有OEM 适配层。
本发明的基于Wince7下实现应用程序控制底层硬件的方法和现有技术相比,具有以下优点:
1、解决了Wince7下应用程序无法直接控制底层硬件的问题;
2、适用于将包含操作硬件代码的应用程序从低版本WINCE移植到高版本WINCE7,也适用于直接在WINCE7上编写应用程序控制底层硬件,实用性强;
3、在保证系统安全性和稳定性的同时,不影响系统的实时响应性能;
4、简单易行,可操作性强;因而,具有很好的推广使用价值。
附图说明
下面结合附图对本发明进一步说明。
附图1为基于Wince7下实现应用程序控制底层硬件的方法的结构框图。
具体实施方式
 下面结合附图和具体实施例对本发明作进一步说明。
本发明的基于Wince7下实现应用程序控制底层硬件的方法,以Windows Embedded Compact 7嵌入式操作系统为软件平台,以嵌入式处理器为硬件平台;所述方法如下:
(1)、建立一个流接口设备驱动,将所要操作的底层硬件的代码放到流接口设备驱动中;
(2)、在应用程序中添加上述流接口设备驱动的实例;
(3)、在应用程序需要操作底层硬件的地方,通过IOCONTROL消息来调用流接口设备驱动中的底层硬件的代码,从而实现应用程序对底层硬件的操作。
以Windows Embedded Compact 7嵌入式操作系统为软件平台,以Freescale公司的IMX53嵌入式处理器为硬件平台,详细步骤如下:
(1)、建立一个流接口设备驱动,将所要操作的底层硬件的代码放到流接口设备驱动中;
(2)、在Windows Embedded Compact 7嵌入式操作系统启动的时候,OEM 适配层OAL.exe首先加载CE内核kernel.dll,然后kernel.dll加载device.dll,device.dll会加载devmgr.dll;devmgr.dll是设备管理器模块,负责流接口设备驱动的加载、卸载和交互操作;
(3)、应用程序通过调用函数CreateFile打开设备管理器模块并获得相应的句柄,然后通过调用IOCONTROL访问流接口设备驱动;
在流接口设备驱动中添加的操作硬件的代码,和OEM 适配层合作,共同来对硬件进行控制和访问。
下面为应用程序控制硬件的核心代码:
//应用程序
HANDLE g_hGPO;
g_hGPO = CreateFile(szClassName, GENERIC_READ | GENERIC_WRITE, 0, NULL,
                           OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if ( g_hGPO == INVALID_HANDLE_VALUE )
{
MessageBox(_T("Open GPO driver failed!"),_T("Error"),MB_OK);
BYTE OutBuffer = 0;
DWORD OutBufferSize = 1;
DWORD ActualReturned = 0;
DeviceIoControl(g_hGPO, IOCTL_GPIO_SET_HIGH, NULL, NULL, &OutBuffer ,OutBufferSize, &ActualReturned, NULL);
CString message;
message.Format(_T("Returned value is:%x,returned %x bytes."),OutBuffer,ActualReturned);
MessageBox(message,0,0);}
//流接口驱动
BOOL GPO_IOControl(DWORD hOpenContext,
                   DWORD dwCode,
                   PBYTE pBufIn,
                   DWORD dwLenIn,
                   PBYTE pBufOut,
                   DWORD dwLenOut,
                   PDWORD pdwactualOut)
{
   UINT32 dwStatus = 1; 
//Control Hardware Code
    DDKIomuxSetPinMux(DDK_IOMUX_PIN_EIM_D27, DDK_IOMUX_PIN_MUXMODE_ALT1,
                         DDK_IOMUX_PIN_SION_REGULAR);
DDKGpioSetConfig(DDK_GPIO_PORT3, 27, DDK_GPIO_DIR_OUT, DDK_GPIO_INTR_NONE); 
    DDKGpioWriteDataPin(DDK_GPIO_PORT3, 27, 1); 
   if(DDKGpioReadDataPin_DR(DDK_GPIO_PORT3,27,&dwStatus))   
      RETAILMSG(TRUE, (TEXT("Gpio status is %x\r\n"),dwStatus));
   else
      RETAILMSG(TRUE, (TEXT("GPO_IOControl Error 2\r\n"),dwStatus));
   *pBufOut = (BYTE)dwStatus;
   *pdwactualOut = 1;
   return TRUE;
}
本发明的基于Wince7下实现应用程序控制底层硬件的方法,除说明书所述的技术特征外,均为本专业技术人员的已知技术。

Claims (2)

1.基于Wince7下实现应用程序控制底层硬件的方法,其特征在于以Windows Embedded Compact 7嵌入式操作系统为软件平台,以嵌入式处理器为硬件平台;所述方法如下:
(1)、建立一个流接口设备驱动,将所要操作的底层硬件的代码放到流接口设备驱动中;
(2)、在应用程序中添加上述流接口设备驱动的实例;
(3)、在应用程序需要操作底层硬件的地方,通过IOCONTROL消息来调用流接口设备驱动中的底层硬件的代码,实现应用程序对底层硬件的操作。
2.根据权利要求1所述的基于Wince7下实现应用程序控制底层硬件的方法,其特征在于以Windows Embedded Compact 7嵌入式操作系统为软件平台,以Freescale公司的IMX53嵌入式处理器为硬件平台,详细步骤如下:
(1)、建立一个流接口设备驱动,将所要操作的底层硬件的代码放到流接口设备驱动中;
(2)、在Windows Embedded Compact 7嵌入式操作系统启动的时候,OEM 适配层OAL.exe首先加载CE内核kernel.dll,然后kernel.dll加载device.dll,device.dll会加载devmgr.dll;devmgr.dll是设备管理器模块,负责流接口设备驱动的加载、卸载和交互操作;
(3)、应用程序通过调用函数CreateFile打开设备管理器模块并获得相应的句柄,然后通过调用IOCONTROL访问流接口设备驱动;
在流接口设备驱动中添加的操作硬件的代码,和OEM 适配层合作,共同来对硬件进行控制和访问。
CN2013101773534A 2013-05-15 2013-05-15 基于Wince7下实现应用程序控制底层硬件的方法 Pending CN103257865A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2013101773534A CN103257865A (zh) 2013-05-15 2013-05-15 基于Wince7下实现应用程序控制底层硬件的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2013101773534A CN103257865A (zh) 2013-05-15 2013-05-15 基于Wince7下实现应用程序控制底层硬件的方法

Publications (1)

Publication Number Publication Date
CN103257865A true CN103257865A (zh) 2013-08-21

Family

ID=48961801

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2013101773534A Pending CN103257865A (zh) 2013-05-15 2013-05-15 基于Wince7下实现应用程序控制底层硬件的方法

Country Status (1)

Country Link
CN (1) CN103257865A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106371847A (zh) * 2016-09-07 2017-02-01 湖北三江航天万峰科技发展有限公司 Windows xp系统下CPCI总线RS422通信驱动方法及系统
CN107423095A (zh) * 2017-07-24 2017-12-01 百富计算机技术(深圳)有限公司 适配硬件的数据处理方法、装置、存储介质和计算机设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259570A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation Method and system for closing an RDMA connection
CN102426557A (zh) * 2011-10-27 2012-04-25 中国科学院计算技术研究所 虚拟化环境中 pci 设备的分离访问方法及其系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259570A1 (en) * 2005-05-13 2006-11-16 Microsoft Corporation Method and system for closing an RDMA connection
CN102426557A (zh) * 2011-10-27 2012-04-25 中国科学院计算技术研究所 虚拟化环境中 pci 设备的分离访问方法及其系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
CGEBTQ2000: "《http://blog.sina.com.cn/s/blog_539238aa0100p8qw.html》", 29 May 2008 *
GOOOGLEMAN: "《http://bbs.csdn.net/topics/310088700》", 17 June 2009 *
LYS_BEST: "《http://blog.csdn.net/lys_best/article/details/7856235》", 12 August 2012 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106371847A (zh) * 2016-09-07 2017-02-01 湖北三江航天万峰科技发展有限公司 Windows xp系统下CPCI总线RS422通信驱动方法及系统
CN107423095A (zh) * 2017-07-24 2017-12-01 百富计算机技术(深圳)有限公司 适配硬件的数据处理方法、装置、存储介质和计算机设备

Similar Documents

Publication Publication Date Title
KR101763102B1 (ko) 인터페이스 기반 에러 인젝션이 있는 컴퓨팅 플랫폼
US20190087212A1 (en) Android simulator and method for implementing android simulator
US8838948B2 (en) Remote management of UEFI BIOS settings and configuration
US8694981B2 (en) Shared resource dependencies
EP3123322B1 (en) Virtual general-purpose i/o controller
CA2786890C (en) Extension point declarative registration for virtualization
US20070174033A1 (en) Remote control device and method for accessing peripheral device remotely
US20070198996A1 (en) System and method for driving peripheral devices
CN107567629B (zh) 在可信执行环境容器中的动态固件模块加载器
EP3436947B1 (en) Secure driver platform
JP2008287505A (ja) 情報処理装置およびレガシーエミュレーション処理停止制御方法
US9672047B1 (en) Systems and methods for accessing a bootable partition on a serial peripheral interface device
CN111984263B (zh) 在第一系统运行第二系统应用的方法、装置、设备及介质
US11222119B2 (en) Technologies for secure and efficient native code invocation for firmware services
US20070260761A1 (en) Inter-module data communication control method and system for ACPI and BIOS
JP2006164266A (ja) オペレーティングシステムのパフォーマンスの改善
CN103257865A (zh) 基于Wince7下实现应用程序控制底层硬件的方法
US20110276793A1 (en) Injecting a file from the bios into an operating system
US10592438B2 (en) Firmware configuration through emulated commands
US9087031B2 (en) Method and program for selective suspension of USB device
CN109254856A (zh) 智能pos服务端提供接口给客户端的方法
Armand et al. Shared device driver model for virtualized mobile handsets
CN110688099A (zh) 远距离无线电集成可编程片上系统的微处理器开发方法
CN114140835A (zh) 即插即用的掌纹识别外接系统及识别方法
KR101513568B1 (ko) 그래픽카드가 장착된 임베디드 시스템에서의 x 윈도우 시스템 및 그 실행방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20130821