CN106933578A - 一种qnx系统的usb驱动加载方法 - Google Patents
一种qnx系统的usb驱动加载方法 Download PDFInfo
- 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
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
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软件技术领域,尤其涉及一种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。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023013898A1 (ko) * | 2021-08-03 | 2023-02-09 | 삼성전자 주식회사 | Usb 타입 c 연결 감지를 강화하는 방법 및 장치 |
Citations (4)
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 | 福建升腾资讯有限公司 | 终端产品驱动加载稳定性测试方法 |
-
2017
- 2017-02-28 CN CN201710114629.2A patent/CN106933578B/zh active Active
Patent Citations (4)
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)
Title |
---|
董光: "嵌入式linux下USB设备自动加载", 《长春理工大学学报(自然科学版)》 * |
Cited By (2)
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 |