CN106933578A - 一种qnx系统的usb驱动加载方法 - Google Patents

一种qnx系统的usb驱动加载方法 Download PDF

Info

Publication number
CN106933578A
CN106933578A CN201710114629.2A CN201710114629A CN106933578A CN 106933578 A CN106933578 A CN 106933578A CN 201710114629 A CN201710114629 A CN 201710114629A CN 106933578 A CN106933578 A CN 106933578A
Authority
CN
China
Prior art keywords
usb
usb device
judged
drive
drive load
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.)
Granted
Application number
CN201710114629.2A
Other languages
English (en)
Other versions
CN106933578B (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.)
Huizhou Foryou General Electronics Co Ltd
Original Assignee
Huizhou Foryou General 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 Huizhou Foryou General Electronics Co Ltd filed Critical Huizhou Foryou General Electronics Co Ltd
Priority to CN201710114629.2A priority Critical patent/CN106933578B/zh
Publication of CN106933578A publication Critical patent/CN106933578A/zh
Application granted granted Critical
Publication of CN106933578B publication Critical patent/CN106933578B/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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供QNX系统的USB驱动加载方法,通过检测USB的插拔状态,当检测到USB驱动加载失败后,发送预设USB驱动错误诊断码,结束当前USB驱动进程,然后模拟USB驱动进程拉起,实现USB设备驱动的重新加载。

Description

一种QNX系统的USB驱动加载方法
技术领域
本发明涉及QNX软件技术领域,尤其涉及一种QNX系统的USB驱动加载方法。
背景技术
QNX系统是由加拿大QSSL公司(QNX Software System Ltd.)开发的分布式实时操作系统,以其稳定著称,因此非常适合作用对稳定性要求较高的车载信息系统的操作系统。
USB作为车机系统上一个重要的娱乐模块,备受终端用户关注,USB设备在某些情况下,如反复插拔、反复开关机ACC ON/OFF,或者是CPU占用率很高时,USB驱动可能会出现加载不正常的情况。
因此,现有技术有待进一步改进。
发明内容
本发明提供一种QNX系统的USB驱动加载方法,旨在解决现有技术中的缺陷,实现USB驱动的准确加载。
为达到上述目的,本发明所采取的技术方案为:
S1、系统启动,首次读取USB设备寄存器,获取USB设备初始状态并保存,启动USB状态监测线程;
S2、以预设周期T监测USB设备的插拔状态,若检测到USB设备已插入,则进入下一步;
S3、判断是否为USB存储设备,是则进入下一步,否则进入步骤S7;
S4、监测USB设备安装状态是否OK,是则进入步骤S5,否则进入步骤S6;
S5、检测在预设时间t1内USB设备目录下的相应PPS文件是否创建成功,是则进入步骤S6,否则进入步骤S7;
S6、检测在预设时间t2内USB盘符路径是否创建成功,是则进入步骤S12,否则进入步骤S7;
S7、判断USB驱动加载失败;
S8、发送预设USB驱动错误诊断码;
S9、接收所述预设USB驱动错误诊断码,结束当前USB驱动进程;
S10、判断模拟USB驱动进程拉起是否成功,是则返回步骤S3,否则进入下一步;
S11、判断为不可识别的设备,返回步骤S2;
S12、USB设备驱动加载成功,返回步骤S2。
具体地,所述判断是否为USB存储设备,包括如下步骤:
步骤301、检测USB设备版本目录下的版本PPS文件是否生成;
步骤302、判断所述版本PPS文件中的设备数目是否为1,是则进入下一步;
步骤303、判断所述版本PPS文件中的class ID是否为预设值,是则判断为USB设备,否则判断为非USB设备。
具体地,所述判断模拟USB驱动进程拉起是否成功,包括如下步骤:
步骤1001、检测模拟USB驱动进程拉起次数是否超过预设次数n,是则判断为不可识别的设备,否则进入下一步;
步骤1002、开始模拟USB驱动进程拉起,当监测到USB设备寄存器的状态由插入变为拔出时,将其判断为模拟USB驱动进程拉起运行中;
步骤1003、当监测到USB设备寄存器的状态由拔出变为插入时,判断模拟USB驱动进程拉起结束,并返回步骤3。
具体地,所述预设周期T=2s。
具体地,所述预设时间t1=5s。
具体地,所述预设时间t2=5s。
具体地,所述预设次数n=3。
本发明的有益效果在于:本发明通过检测USB的插拔状态,当检测到USB驱动加载失败后,发送预设USB驱动错误诊断码,结束当前USB驱动进程,然后模拟USB驱动进程拉起,实现USB设备驱动的重新加载。
附图说明
图1是本发明的QNX系统的USB驱动加载的流程示意图。
具体实施方式
下面结合附图具体阐明本发明的实施方式,附图仅供参考和说明使用,不构成对本发明专利保护范围的限制。
请参见图1,本实施例提供的QNX系统的USB驱动加载方法,主要包括以下步骤:
步骤1、系统启动,首次读取USB设备寄存器,获取USB设备初始状态并保存,启动USB状态监测线程。
所述USB设备初始状态为插入或者拔出。
步骤2、以预设周期T监测USB设备的插拔状态,若检测到USB设备已插入,则进入下一步。
在本实施例中,所述预设周期T=2s。
在具体实施时,所述监测USB设备的插拔状态通过读取USB设备寄存器来实现。
步骤3、判断是否为USB存储设备,是则进入下一步,否则进入步骤7。
具体地,所述判断是否为USB存储设备,包括如下步骤:
步骤301、检测USB设备版本目录下的版本PPS文件是否生成。
PPS即Persistent Pusblish/SubScribe的缩写,是QNX系统特有的多进程间的一种通讯方式。PPS文件是一个文件节点信息,里面记录了一些状态信息。
在本实施例中,所述USB设备版本目录为/pps/qnx/driver,该目录在QNX系统在USB设备已插入的情况下,会生成的一个版本PPS文件。例如,
/pps/qnx/driver/usb-1.0.1的PPS文件记录的就是当前的USB的1.0.1版本USB设备的状态信息。
步骤302、判断所述版本PPS文件中的设备数目是否为1,是则进入下一步。
步骤303、判断所述版本PPS文件中的class ID是否为预设值,是则判断为USB设备,否则判断为非USB设备。
按照USB通讯协议,USB的class ID=0x08。
步骤4、监测USB设备安装状态是否OK,是则进入步骤5,否则进入步骤6。
在具体实施时,通过检测/pps/qnx/mount节点是否生成来判断USB设备安装状态是否已OK。
步骤5、检测在预设时间t1内USB设备目录下的相应PPS文件是否创建成功,是则进入步骤6,否则进入步骤7。
在本实施例中,所述预设时间t1=5s。
在本实施例中,使用Linux的select函数来监控USB设备版本目录(/pps/qnx/device)、USB设备驱动目录(/pps/qnx/driver)及PPS文件是否已经生成。
步骤6、检测在预设时间t2内USB盘符路径是否创建成功,是则进入步骤12,否则进入步骤7。
在本实施例中,所述预设时间t2=5s。
步骤7、判断USB驱动加载失败。
步骤8、发送预设USB驱动错误诊断码。
步骤9、接收所述预设USB驱动错误诊断码,结束当前USB驱动进程。
在具体实施时,QNX系统通过资源管理器接收所述预设USB驱动错误诊断码,执行相应脚本结束所述当前USB驱动进程。
在具体实施时,所述USB驱动进程是指USBLauncher,它是QNX系统负责加载USB驱动的进程。
步骤10、判断模拟USB驱动进程拉起是否成功,是则返回步骤3,否则进入下一步。
在本实施例中,所述判断模拟USB驱动进程拉起是否成功,包括如下步骤:
步骤1001、检测模拟USB驱动进程拉起次数是否超过预设次数n,是则判断为不可识别的设备,否则进入下一步。
在本实施例中,所述预设次数n=3。
步骤1002、开始模拟USB驱动进程拉起,当监测到USB设备寄存器的状态由插入变为拔出时,将其判断为模拟USB驱动进程拉起运行中;
步骤1003、当监测到USB设备寄存器的状态由拔出变为插入时,判断模拟USB驱动进程拉起结束,并返回步骤3。
在重新启动USB驱动进程的过程中,最开始读取USB设备寄存器时,读取到的值为0,表示USB设备已拔出,然后寄存器读取到的值变为1,表示USB设备已插入;但实际上所述USB设备并未真正拔下然后插入,因此为了将重新启动USB驱动进程的过程与USB的物理拔插的过程区分,定义了重新启动USB驱动进程的过程中的三种状态:模拟USB驱动进程拉起开始、模拟USB驱动进程拉起运行中、模拟USB驱动进程拉起结束,从而实现重新启动USB驱动进程的目的。
步骤11、判断为不可识别的设备,返回步骤2。
步骤12、USB设备驱动加载成功,返回步骤2。
以上所揭露的仅为本发明的较佳实施例,不能以此来限定本发明的权利保护范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

Claims (7)

1.一种QNX系统的USB驱动加载方法,其特征在于,包括:
S1、系统启动,首次读取USB设备寄存器,获取USB设备初始状态并保存,启动USB状态监测线程;
S2、以预设周期T监测USB设备的插拔状态,若检测到USB设备已插入,则进入下一步;
S3、判断是否为USB存储设备,是则进入下一步,否则进入步骤S7;
S4、监测USB设备安装状态是否OK,是则进入步骤S5,否则进入步骤S6;
S5、检测在预设时间t1内USB设备目录下的相应PPS文件是否创建成功,是则进入步骤S6,否则进入步骤S7;
S6、检测在预设时间t2内USB盘符路径是否创建成功,是则进入步骤S12,否则进入步骤S7;
S7、判断USB驱动加载失败;
S8、发送预设USB驱动错误诊断码;
S9、接收所述预设USB驱动错误诊断码,结束当前USB驱动进程;
S10、判断模拟USB驱动进程拉起是否成功,是则返回步骤S3,否则进入下一步;
S11、判断为不可识别的设备,返回步骤S2;
S12、USB设备驱动加载成功,返回步骤S2。
2.根据权利要求1所述的QNX系统的USB驱动加载方法,其特征在于,所述判断是否为USB存储设备,包括如下步骤:
步骤301、检测USB设备版本目录下的版本PPS文件是否生成;
步骤302、判断所述版本PPS文件中的设备数目是否为1,是则进入下一步;
步骤303、判断所述版本PPS文件中的class ID是否为预设值,是则判断为USB设备,否则判断为非USB设备。
3.根据权利要求1所述的QNX系统的USB驱动加载方法,其特征在于,所述判断模拟USB驱动进程拉起是否成功,包括如下步骤:
步骤1001、检测模拟USB驱动进程拉起次数是否超过预设次数n,是则判断为不可识别的设备,否则进入下一步;
步骤1002、开始模拟USB驱动进程拉起,当监测到USB设备寄存器的状态由插入变为拔出时,将其判断为模拟USB驱动进程拉起运行中;
步骤1003、当监测到USB设备寄存器的状态由拔出变为插入时,判断模拟USB驱动进程拉起结束,并返回步骤3。
4.根据权利要求1所述的QNX系统的USB驱动加载方法,其特征在于,所述预设周期T=2s。
5.根据权利要求1所述的QNX系统的USB驱动加载方法,其特征在于,所述预设时间t1=5s。
6.根据权利要求1所述的QNX系统的USB驱动加载方法,其特征在于,所述预设时间t2=5s。
7.根据权利要求3所述的QNX系统的USB驱动加载方法,其特征在于,所述预设次数n=3。
CN201710114629.2A 2017-02-28 2017-02-28 一种qnx系统的usb驱动加载方法 Active CN106933578B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710114629.2A CN106933578B (zh) 2017-02-28 2017-02-28 一种qnx系统的usb驱动加载方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710114629.2A CN106933578B (zh) 2017-02-28 2017-02-28 一种qnx系统的usb驱动加载方法

Publications (2)

Publication Number Publication Date
CN106933578A true CN106933578A (zh) 2017-07-07
CN106933578B CN106933578B (zh) 2020-05-22

Family

ID=59424277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710114629.2A Active CN106933578B (zh) 2017-02-28 2017-02-28 一种qnx系统的usb驱动加载方法

Country Status (1)

Country Link
CN (1) CN106933578B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632948A (zh) * 2017-09-22 2018-01-26 惠州Tcl移动通信有限公司 移动终端及usb驱动设置处理方法、及存储介质
US12099395B2 (en) 2021-08-03 2024-09-24 Samsung Electronics Co., Ltd. Method and apparatus for enhancing detection of type-C USB connections

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023013898A1 (ko) * 2021-08-03 2023-02-09 삼성전자 주식회사 Usb 타입 c 연결 감지를 강화하는 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889380B1 (en) * 2000-06-30 2005-05-03 Intel Corporation Delaying loading of host-side drivers for cluster resources to avoid communication failures
CN101308475A (zh) * 2008-07-15 2008-11-19 中兴通讯股份有限公司 安全移动存储系统及其使用方法
CN101488114A (zh) * 2009-02-18 2009-07-22 北京飞天诚信科技有限公司 Linux系统下USB设备的处理方法
CN102609356A (zh) * 2012-01-19 2012-07-25 福建升腾资讯有限公司 终端产品驱动加载稳定性测试方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6889380B1 (en) * 2000-06-30 2005-05-03 Intel Corporation Delaying loading of host-side drivers for cluster resources to avoid communication failures
CN101308475A (zh) * 2008-07-15 2008-11-19 中兴通讯股份有限公司 安全移动存储系统及其使用方法
CN101488114A (zh) * 2009-02-18 2009-07-22 北京飞天诚信科技有限公司 Linux系统下USB设备的处理方法
CN102609356A (zh) * 2012-01-19 2012-07-25 福建升腾资讯有限公司 终端产品驱动加载稳定性测试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
董光: "嵌入式linux下USB设备自动加载", 《长春理工大学学报(自然科学版)》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107632948A (zh) * 2017-09-22 2018-01-26 惠州Tcl移动通信有限公司 移动终端及usb驱动设置处理方法、及存储介质
US12099395B2 (en) 2021-08-03 2024-09-24 Samsung Electronics Co., Ltd. Method and apparatus for enhancing detection of type-C USB connections

Also Published As

Publication number Publication date
CN106933578B (zh) 2020-05-22

Similar Documents

Publication Publication Date Title
CN101414272B (zh) 内存泄漏的检测方法和装置
CN111339010B (zh) 一种pcie设备热插拔识别方法、系统及相关组件
CN104834547B (zh) 一种Squashfs只读根文件系统的远程升级方法及系统
CN103744764A (zh) 一种基于Crontab的整机内存稳定性的测试方法
CN108241580B (zh) 客户端程序的测试方法及终端
CN105260273B (zh) 一种智能电子设备的测试方法和装置
CN112054822B (zh) 蓝牙测试方法及装置、电子设备、存储介质
CN111653307A (zh) 固态硬盘的数据完整性检测方法、系统、设备及存储介质
KR20160000758A (ko) 품질테스트장치 및 방법
CN106933578A (zh) 一种qnx系统的usb驱动加载方法
CN103731663A (zh) 一种智能电视的测试方法和装置
CN107451003B (zh) 一种存储系统的测试方法及装置
CN112783721B (zh) 一种i2c总线监控的方法、装置、系统及存储介质
CN102722430B (zh) 一种检测安全数码卡热插拔的方法及装置
CN114510381A (zh) 故障注入方法、装置、设备和存储介质
CN111124785B (zh) 一种硬盘故障检查的方法、装置、设备及存储介质
CN103986950A (zh) 一种解扰模式的控制方法、装置及设备
CN105912431A (zh) 服务器reboot测试方法、服务器、控制器和系统
CN115580550A (zh) 网卡稳定性测试方法、装置、设备及存储介质
CN115934446A (zh) 一种自检方法、服务器、设备和存储介质
CN104346233A (zh) 一种用于计算机系统的故障恢复方法及装置
CN114780317A (zh) 一种硬盘拔插测试方法、系统及相关组件
CN113220510A (zh) 设备检测方法、检测设备和计算机可读存储介质
CN114218071A (zh) 一种用于安卓设备的发卡机自动化测试方法、系统及介质
CN103218232B (zh) 一种控制工程设备执行操作命令的方法及装置

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