CN112230999B - 一种解决VxWorks图形开发中PS2设备加载失败的方法 - Google Patents

一种解决VxWorks图形开发中PS2设备加载失败的方法 Download PDF

Info

Publication number
CN112230999B
CN112230999B CN202011098019.6A CN202011098019A CN112230999B CN 112230999 B CN112230999 B CN 112230999B CN 202011098019 A CN202011098019 A CN 202011098019A CN 112230999 B CN112230999 B CN 112230999B
Authority
CN
China
Prior art keywords
windml
vxworks
equipment
state
configuration
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.)
Active
Application number
CN202011098019.6A
Other languages
English (en)
Other versions
CN112230999A (zh
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.)
Tianjin Jinhang Computing Technology Research Institute
Original Assignee
Tianjin Jinhang Computing Technology Research Institute
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 Tianjin Jinhang Computing Technology Research Institute filed Critical Tianjin Jinhang Computing Technology Research Institute
Priority to CN202011098019.6A priority Critical patent/CN112230999B/zh
Publication of CN112230999A publication Critical patent/CN112230999A/zh
Application granted granted Critical
Publication of CN112230999B publication Critical patent/CN112230999B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种解决VxWorks图形开发中PS2设备加载失败的方法,属于嵌入式软件开发领域。本发明在WindML配置中,加入ps2pointer组件;在components路径下,修改PS2设备的驱动文件,加入完善驱动的代码;编译WindML,将上述更改应用到操作系统中。本发明具备抵抗VxWorks操作系统启动过程中操作PS2设备(移动PS2鼠标或是操作键盘按键)而导致加载失败的能力,该技术方法经过了大量实验验证,结果表明,该方法稳定可靠,能够保证VxWorks操作系统启动过程中PS2设备加载的可靠性和成功率。

Description

一种解决VxWorks图形开发中PS2设备加载失败的方法
技术领域
本发明属于嵌入式软件开发领域,具体涉及一种解决VxWorks图形开发中PS2设备加载失败的方法。
背景技术
VxWorks操作系统在我国船舶、通讯、军事、航天等高尖技术及实时性要求极高的领域被广泛应用。在这些领域中,工作环境和电磁环境都比较恶劣,PS2协议具有抗干扰性能好,传输距离远等特点,因此,在基于VxWorks wimdML开发的图形应用中,人工输入设备大多数采用了PS2接口形式。VxWorks操作系统WindML这一层对PS2设备只进行了简单的驱动支持,并没有对异常情况做相应的处理,鲁棒性不强,在系统启动过程中,受外界干扰或人工移动鼠标、操作键盘很容易造成PS2鼠标加载失败,人机界面显示后,鼠标、键盘不能响应的情况。
为了解决这个问题,从VxWorks系统Intel 8042控制器驱动入手,查明在异常情况下,驱动初始化PS2设备失败的原因,提出解决VxWorks操作系统挂接PS2鼠标失败的方法。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是如何提供一种解决VxWorks图形开发中PS2设备加载失败的方法,以解决VxWorks系统启动过程中PS2鼠标加载失败的问题。
(二)技术方案
为了解决上述技术问题,本发明提出一种解决VxWorks图形开发中PS2设备加载失败的方法,该方法包括如下步骤:
S1、在WindML配置中,加入ps2pointer组件;
S2、在components路径下,修改PS2设备的驱动文件,加入完善驱动的代码;
S3、编译WindML,将上述更改应用到操作系统中。
进一步地,所述步骤S1具体包括如下步骤:
S11、创建WindML工程;
S12、在Media Library属性配置框中,加入Pointer选项,并配置为PS/2 StylePointer;
S13、配置其它WindML工程属性;
S14、保存WindML配置。
进一步地,所述步骤S2具体包括如下步骤:
S21、在WINDBASE\components\windml-5.1\config\wrmdb路径下,找到鼠标配置文件WindML_PTR_DEVICE_PS2.wrmdb;打开该文件,获取鼠标驱动入口函数i8042MseDevCreate;
S22、在i8042KbdMse.c文件中找到i8042MseDevCreate函数原型,对设备初始挂接状态进行判断,对异常状态进行修正;
S23、保存文件。
进一步地,所述步骤S22中对设备初始挂接状态进行判断,对异常状态进行修正具体包括:在使能PS2设备之后,加入判断PS2设备配置状态,当状态为0x51时,即设备中断使能但是异常导致设备被关闭时,向i8042配置寄存器再次写入使能设备中断命令0x3,使设备清除异常中断导致的状态,恢复设备运行状态。
进一步地,所述判断PS2设备配置状态包括从i8042配置寄存器中读取PS2设备的配置状态。
进一步地,所述步骤S3具体包括如下步骤:
S31、在步骤S1创建和配置好的WindML工程中,选择Rebui ld工程,直至编译完成;
S32、基于编译完成的WindML,加入WindML组件编译生成VxWorks系统镜像。
进一步地,所述PS2设备为PS2鼠标。
本发明还提供一种解决VxWorks图形开发中PS2设备加载失败的方法,该方法包括如下步骤:
(1)在WindML配置中添加ps2设备并找出设备驱动文件;
(2)在设备驱动文件中找到设备描述符创建函数,对设备初始挂接状态进行判断,对异常状态进行修正;
(3)对更改驱动后的WindML源码重新编译,生成库文件,解决PS2设备加载失败问题。
进一步地,所述对设备初始挂接状态进行判断,对异常状态进行修正具体包括:在使能PS2设备之后,加入判断PS2设备配置状态,当状态为0x51时,即设备中断使能但是异常导致设备被关闭时,向i8042配置寄存器再次写入使能设备中断命令0x3,使设备清除异常中断导致的状态,恢复设备运行状态。
进一步地,所述判断PS2设备配置状态包括从i8042配置寄存器中读取PS2设备的配置状态。
(三)有益效果
本发明提出一种解决VxWorks图形开发中PS2设备加载失败的方法,完善了VxWorks操作系统PS2设备加载挂接的驱动,保证了PS2设备在VxWorks操作系统启动过程中加载的可靠性和成功率。本发明具备抵抗VxWorks操作系统启动过程中操作PS2设备(移动PS2鼠标或是操作键盘按键)而导致加载失败的能力,该技术方法经过了大量实验验证,结果表明,该方法稳定可靠,能够保证VxWorks操作系统启动过程中PS2设备加载的可靠性和成功率。
附图说明
图1为本发明解决ps2设备加载失败的方法流程图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
本发明属于VxWorks系统下增强PS2设备挂接可靠性的技术方法,在VxWorks操作系统的应用场景下,针对其对PS2设备查询、加载以及驱动过程过于简单的情况,根据PS2设备加载原理,实现一种强壮PS2设备加载过程的设计。本发明完善了VxWorks操作系统PS2设备加载挂接的驱动,保证了PS2设备在VxWorks操作系统启动过程中加载的可靠性和成功率。
为实现上述目的,本发明采取以下技术措施:
S1、在WindML配置中,加入ps2pointer组件;
S2、在components路径下,修改PS2设备的驱动文件,加入完善驱动的代码;
S3、编译WindML,将上述更改应用到操作系统中。
通过以上步骤,可以解决在特定情况下,VxWorks操作系统PS2鼠标加载失败的问题。
结合图1,为了解决在VxWorks操作系统启动过程中,移动鼠标导致PS2鼠标加载失败的问题,我们通过更改VxWorks操作系统下ps2设备驱动源码来解决这个问题。下面对本发明的内容作进一步描述。
1、在WindML配置中,加入ps2pointer组件
S11、创建WindML工程;
S12、在Media Library属性配置框中,加入Pointer选项,并配置为PS/2 StylePointer;
S13、配置其它WindML工程属性
S14、保存WindML配置。
2、在components路径下,修改PS2设备的驱动文件,加入完善驱动的代码
造成问题的原因为,在VxWorks操作系统创建PS2设备(鼠标)之前,鼠标移动产生了中断,在设备挂接到系统之前,这种中断是没有办法被操作系统处理的,因此导致设备状态异常,中断标志位异常以及中断无法再产生的情况;若出现这种情况,通过向i8042配置寄存器再次写入中断使能标志得以解决。
S21、在WINDBASE\components\windml-5.1\config\wrmdb路径下,找到鼠标配置文件WindML_PTR_DEVICE_PS2.wrmdb;打开该文件,获取鼠标驱动入口函数i8042MseDevCreate
S22、在i8042KbdMse.c文件中找到i8042MseDevCreate函数原型,对设备初始挂接状态进行判断,对异常状态进行修正。
在使能PS2设备之后,加入判断PS2设备配置状态,当状态为0x51时,即设备中断使能但是异常导致设备被关闭时,向i8042配置寄存器再次写入使能设备中断命令0x3,使设备清除异常中断导致的状态,恢复设备运行状态。
S23、保存文件。
3、编译WindML,将上述更改应用到操作系统中。
S31、回到在第一步中创建和配置好的WindML工程中,选择Rebuild工程,直至编译完成。
S32、基于编译完成的WindML,加入WindML组件,进行编译生成VxWorks系统镜像。
利用上述技术方案,采用上述操作步骤,本发明具备抵抗VxWorks操作系统启动过程中操作PS2设备(移动PS2鼠标或是操作键盘按键)而导致加载失败的能力,该技术方法经过了大量实验验证,结果表明,该方法稳定可靠,能够保证VxWorks操作系统启动过程中PS2设备加载的可靠性。
本发明还提供一种解决vxworks图形开发中PS2设备加载失败的方法,该方法包括:
(1)在WindML配置中添加ps2设备并找出设备驱动文件;
(2)在设备驱动文件中找到设备描述符创建函数,对设备初始挂接状态进行判断,对异常状态进行修正;
(3)对(2)中更改驱动后的WindML源码重新编译,生成库文件,解决PS2设备加载失败问题。
本发明的关键在于:(1)从VxWorks操作系统加载WindML设备驱动过程入手,找到重新挂接设备的驱动函数;(2)从驱动中读取i8042配置寄存器中设备的配置状态;(3)发现异常设备状态,向寄存器中写入使能设备和使能中断字,从而使加载失败的设备重新挂接。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (8)

1.一种解决VxWorks图形开发中PS2设备加载失败的方法,其特征在于,该方法包括如下步骤:
S1、在WindML配置中,加入ps2pointer组件;
S2、在components路径下,修改PS2设备的驱动文件,加入完善驱动的代码;
S3、编译WindML,将上述更改应用到操作系统中;
其中,所述步骤S2具体包括如下步骤:
S21、在WINDBASE\components\windml-5.1\config\wrmdb路径下,找到鼠标配置文件WindML_PTR_DEVICE_PS2.wrmdb;打开该文件,获取鼠标驱动入口函数i8042MseDevCreate;
S22、在i8042KbdMse.c文件中找到i8042MseDevCreate函数原型,对设备初始挂接状态进行判断,对异常状态进行修正;
S23、保存文件。
2.如权利要求1所述的解决VxWorks图形开发中PS2设备加载失败的方法,其特征在于,所述步骤S1具体包括如下步骤:
S11、创建WindML工程;
S12、在Media Library属性配置框中,加入Pointer选项,并配置为PS/2StylePointer;
S13、配置其它WindML工程属性;
S14、保存WindML配置。
3.如权利要求1所述的解决VxWorks图形开发中PS2设备加载失败的方法,其特征在于,所述步骤S22中对设备初始挂接状态进行判断,对异常状态进行修正具体包括:在使能PS2设备之后,加入判断PS2设备配置状态,当状态为0x51时,即设备中断使能但是异常导致设备被关闭时,向i8042配置寄存器再次写入使能设备中断命令0x3,使设备清除异常中断导致的状态,恢复设备运行状态。
4.如权利要求3所述的解决VxWorks图形开发中PS2设备加载失败的方法,其特征在于,所述判断PS2设备配置状态包括从i8042配置寄存器中读取PS2设备的配置状态。
5.如权利要求3-4任一项所述的解决VxWorks图形开发中PS2设备加载失败的方法,其特征在于,所述步骤S3具体包括如下步骤:
S31、在步骤S1创建和配置好的WindML工程中,选择Rebuild工程,直至编译完成;
S32、基于编译完成的WindML,加入WindML组件编译生成VxWorks系统镜像。
6.如权利要求1所述的解决VxWorks图形开发中PS2设备加载失败的方法,其特征在于,所述PS2设备为PS2鼠标。
7.一种解决VxWorks图形开发中PS2设备加载失败的方法,其特征在于,该方法包括如下步骤:
(1)在WindML配置中添加ps2设备并找出设备驱动文件;
(2)在设备驱动文件中找到设备描述符创建函数,对设备初始挂接状态进行判断,对异常状态进行修正;
(3)对更改驱动后的WindML源码重新编译,生成库文件,解决PS2设备加载失败问题;
其中,所述对设备初始挂接状态进行判断,对异常状态进行修正具体包括:在使能PS2设备之后,加入判断PS2设备配置状态,当状态为0x51时,即设备中断使能但是异常导致设备被关闭时,向i8042配置寄存器再次写入使能设备中断命令0x3,使设备清除异常中断导致的状态,恢复设备运行状态。
8.如权利要求7所述的解决VxWorks图形开发中PS2设备加载失败的方法,其特征在于,所述判断PS2设备配置状态包括从i8042配置寄存器中读取PS2设备的配置状态。
CN202011098019.6A 2020-10-14 2020-10-14 一种解决VxWorks图形开发中PS2设备加载失败的方法 Active CN112230999B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011098019.6A CN112230999B (zh) 2020-10-14 2020-10-14 一种解决VxWorks图形开发中PS2设备加载失败的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011098019.6A CN112230999B (zh) 2020-10-14 2020-10-14 一种解决VxWorks图形开发中PS2设备加载失败的方法

Publications (2)

Publication Number Publication Date
CN112230999A CN112230999A (zh) 2021-01-15
CN112230999B true CN112230999B (zh) 2023-07-28

Family

ID=74112894

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011098019.6A Active CN112230999B (zh) 2020-10-14 2020-10-14 一种解决VxWorks图形开发中PS2设备加载失败的方法

Country Status (1)

Country Link
CN (1) CN112230999B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113656029B (zh) * 2021-08-18 2023-08-01 天津津航计算技术研究所 一种Qt应用在VxWorks操作系统下响应触摸屏事件的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942069A (zh) * 2014-04-01 2014-07-23 西安睿控创合电子科技有限公司 一种基于X86平台Vxworks操作系统的快速启动优化方法
CN103955387A (zh) * 2014-04-25 2014-07-30 国家电网公司 一种VxWorks系统中BSP的设计方法
CN107015807A (zh) * 2017-04-06 2017-08-04 青岛海信宽带多媒体技术有限公司 一种设备驱动管理方法
CN107912084A (zh) * 2015-03-18 2018-04-13 T移动美国公司 基于路径的数据中断检测

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103942069A (zh) * 2014-04-01 2014-07-23 西安睿控创合电子科技有限公司 一种基于X86平台Vxworks操作系统的快速启动优化方法
CN103955387A (zh) * 2014-04-25 2014-07-30 国家电网公司 一种VxWorks系统中BSP的设计方法
CN107912084A (zh) * 2015-03-18 2018-04-13 T移动美国公司 基于路径的数据中断检测
CN107015807A (zh) * 2017-04-06 2017-08-04 青岛海信宽带多媒体技术有限公司 一种设备驱动管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"远程电能量数据终端的设计与实现";吴恒;《中国优秀博硕士学位论文全文数据库 (硕士) 工程科技Ⅱ辑》;20051115;期刊第C042-87页 *

Also Published As

Publication number Publication date
CN112230999A (zh) 2021-01-15

Similar Documents

Publication Publication Date Title
EP3377968B1 (en) Dynamic update of an application in compilation and deployment
CN107729083B (zh) 一种加载驱动程序的方法及嵌入式设备
US10684846B2 (en) Using semantic annotations to control compatibility behaviors
US8645938B2 (en) System and method for replacing code
CN102402427A (zh) 一种Java应用程序的更新方法及装置
CN112230999B (zh) 一种解决VxWorks图形开发中PS2设备加载失败的方法
US10120655B2 (en) Seamless high performance interoperability between different type graphs that share a garbage collector
US10248409B1 (en) Limiting the effects of source code patches on corresponding native-code patches
CN102799437A (zh) 一种编译脚本自动生成方法和自动生成装置
CN104021023A (zh) 一种突破内核模块版本控制解决方法
US9772835B1 (en) Modification of program code for execution in a multi-tenant or distributed computing environment
CN111045686B (zh) 一种提高应用反编译速度的方法、智能终端及存储介质
CN106502695A (zh) 一种基于嵌入式软件开发方法
US20130117808A1 (en) Apparatus and method for enhancing security in heterogeneous computing environment
EP1960910A1 (en) System and method for deploying an sql procedure
CN110659088A (zh) 一种嵌入式环境下程序扩展的方法及系统
KR20210116295A (ko) 오디오 처리 칩의 처리 방법, 장치, 전자 기기, 매체 및 프로그램
CN106293963B (zh) 一种用于windows系统中应用层和驱动层通讯的方法及系统
WO2016167797A1 (en) Morphed instruction according to configuration update
TWI743780B (zh) 應用程式存在之監視及重新安裝技術
CN112394939B (zh) 基于联盟链的用户合约自动部署方法、装置及存储介质
CN108319227A (zh) 图形套料的数控程序生成方法、服务器及存储介质
CN102880490B (zh) 一种基于Java虚拟机的延时动态对象更新方法
CN114115859A (zh) iOS程序基于本地静态库的编译方法、装置及系统
CN112148283A (zh) 一种跨平台的abi兼容c++组件框架的实现方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant