一种QNX系统的USB驱动加载方法.pdf

上传人:1** 文档编号:6062458 上传时间:2019-04-05 格式:PDF 页数:7 大小:366.54KB
返回 下载 相关 举报
摘要
申请专利号:

CN201710114629.2

申请日:

2017.02.28

公开号:

CN106933578A

公开日:

2017.07.07

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效 IPC(主分类):G06F 9/44申请日:20170228|||公开

IPC分类号:

G06F9/44

主分类号:

G06F9/44

申请人:

惠州华阳通用电子有限公司

发明人:

万锐

地址:

516005 广东省惠州市东江高新科技产业园上霞北路1号华阳工业园A区2号

优先权:

专利代理机构:

广州三环专利商标代理有限公司 44202

代理人:

温旭

PDF下载: PDF下载
内容摘要

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

权利要求书

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。

说明书

一种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。

以上所揭露的仅为本发明的较佳实施例,不能以此来限定本发明的权利保护范
围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

一种QNX系统的USB驱动加载方法.pdf_第1页
第1页 / 共7页
一种QNX系统的USB驱动加载方法.pdf_第2页
第2页 / 共7页
一种QNX系统的USB驱动加载方法.pdf_第3页
第3页 / 共7页
点击查看更多>>
资源描述

《一种QNX系统的USB驱动加载方法.pdf》由会员分享,可在线阅读,更多相关《一种QNX系统的USB驱动加载方法.pdf(7页珍藏版)》请在专利查询网上搜索。

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1