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

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

Info

Publication number
CN106933578B
CN106933578B CN201710114629.2A CN201710114629A CN106933578B CN 106933578 B CN106933578 B CN 106933578B CN 201710114629 A CN201710114629 A CN 201710114629A CN 106933578 B CN106933578 B CN 106933578B
Authority
CN
China
Prior art keywords
usb
entering
judging
usb drive
preset
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
CN201710114629.2A
Other languages
English (en)
Other versions
CN106933578A (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

Images

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 (6)

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;
所述判断模拟USB驱动进程拉起是否成功,包括如下步骤:
步骤1001、检测模拟USB驱动进程拉起次数是否超过预设次数n,是则判断为不可识别的设备,否则进入下一步;
步骤1002、开始模拟USB驱动进程拉起,当监测到USB设备寄存器的状态由插入变为拔出时,将其判断为模拟USB驱动进程拉起运行中;
步骤1003、当监测到USB设备寄存器的状态由拔出变为插入时,判断模拟USB驱动进程拉起结束,并返回步骤3。
2.根据权利要求1所述的QNX系统的USB驱动加载方法,其特征在于,所述判断是否为USB存储设备,包括如下步骤:
步骤301、检测USB设备版本目录下的版本PPS文件是否生成;
步骤302、判断所述版本PPS文件中的设备数目是否为1,是则进入下一步;
步骤303、判断所述版本PPS文件中的class ID是否为预设值,是则判断为USB设备,否则判断为非USB设备。
3.根据权利要求1所述的QNX系统的USB驱动加载方法,其特征在于,所述预设周期T=2s。
4.根据权利要求1所述的QNX系统的USB驱动加载方法,其特征在于,所述预设时间t1=5s。
5.根据权利要求1所述的QNX系统的USB驱动加载方法,其特征在于,所述预设时间t2=5s。
6.根据权利要求1所述的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 CN106933578A (zh) 2017-07-07
CN106933578B true 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 (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 연결 감지를 강화하는 방법 및 장치

Families Citing this family (1)

* 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驱动设置处理方法、及存储介质

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设备自动加载;董光;《长春理工大学学报(自然科学版)》;20100830;165-168 *

Cited By (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 연결 감지를 강화하는 방법 및 장치

Also Published As

Publication number Publication date
CN106933578A (zh) 2017-07-07

Similar Documents

Publication Publication Date Title
KR101459869B1 (ko) 예외처리 테스트 장치 및 방법
CN112486629B (zh) 微服务状态检测方法、装置、电子设备和存储介质
CN107391333B (zh) 一种osd磁盘故障测试方法及系统
CN108241498B (zh) 一种车载设备升级方法、装置及车辆
CN110930131A (zh) 一种车辆维修方法、装置、设备及介质
US10274919B2 (en) Method, device and computer program product for programming a plurality of control units
KR102141287B1 (ko) Autosar 기반 차량 소프트웨어의 결함 테스트 방법 및 결함 테스트 시스템
CN106933578B (zh) 一种qnx系统的usb驱动加载方法
CN111949285B (zh) 一种扩展芯片固件升级方法、装置、设备及存储介质
US8391162B2 (en) Apparatus and method for testing SMNP cards
US9268608B2 (en) Automatic administration of UNIX commands
JP2003535498A (ja) 車両通信網内でエラーのある装置の処理方法
CN114793196B (zh) 固件升级方法、装置、设备和存储介质
CN112596750B (zh) 应用测试方法、装置、电子设备及计算机可读存储介质
CN103473081A (zh) 终端进行系统升级后生效的方法及该终端
CN108319527B (zh) 一种坏道磁盘检测方法和装置
CN113220510A (zh) 设备检测方法、检测设备和计算机可读存储介质
CN105278993A (zh) 一种基于Linux系统的驱动模块升级方法及装置
CN107797915B (zh) 故障的修复方法、装置及系统
CN104090845A (zh) 一种游戏自动测试方法、系统及相关设备
KR101911182B1 (ko) 젠더의 수명 관리가 가능한 반도체 디바이스 테스트 장치 및 그 관리 방법
CN114688679B (zh) 一种空调器参数读取方法和空调器
CN116627795A (zh) 对ota功能进行测试的方法、装置和电子设备
CN112286834B (zh) 多设备软件测试方法、测试装置、电子设备及存储介质
CN116665752B (zh) Ufs稳态性能测试方法、装置、可读存储介质及电子设备

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