CN112230999B - 一种解决VxWorks图形开发中PS2设备加载失败的方法 - Google Patents
一种解决VxWorks图形开发中PS2设备加载失败的方法 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4411—Configuring for operating with peripheral devices; Loading of device drivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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 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设备的配置状态。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113656029B (zh) * | 2021-08-18 | 2023-08-01 | 天津津航计算技术研究所 | 一种Qt应用在VxWorks操作系统下响应触摸屏事件的方法 |
Citations (4)
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移动美国公司 | 基于路径的数据中断检测 |
-
2020
- 2020-10-14 CN CN202011098019.6A patent/CN112230999B/zh active Active
Patent Citations (4)
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)
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 |