[发明专利]基于用户模式多任务下控制硬件设备的方法及其装置有效
申请号: | 201210143390.9 | 申请日: | 2012-05-09 |
公开(公告)号: | CN102693159A | 公开(公告)日: | 2012-09-26 |
发明(设计)人: | 王建;孙明勇 | 申请(专利权)人: | 上海晨思电子科技有限公司;晨星半导体股份有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 深圳市威世博知识产权代理事务所(普通合伙) 44280 | 代理人: | 何青瓦 |
地址: | 200120 上海*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 用户 模式 任务 控制 硬件 设备 方法 及其 装置 | ||
1.一种基于用户模式多任务下驱动器控制硬件设备的方法,其特征在于,包括:
在用户模式下接收需要访问硬件设备的进程访问该硬件设备的请求,该请求中含有所述需要访问硬件设备的进程的标识(ID);
判断所述需要访问硬件设备的进程是否获取了访问该硬件设备的互斥锁;
若所述需要访问硬件设备的进程获取了访问该硬件设备的互斥锁,则判断所述需要访问硬件设备的进程的ID与最近一次访问该硬件设备的进程的ID是否相同;
若所述需要访问硬件设备的进程的ID与最近一次访问该硬件设备的进程的ID不相同,则在所述需要访问硬件设备的进程和最近一次访问该硬件设备的进程之间进行上下文切换,使得所述需要访问硬件设备的进程使用该硬件设备。
2.根据权利要求1所述的方法,其特征在于,还包括如下步骤:
从已保存的所述需要访问硬件设备的进程镜像文件读出寄存器和I/O状态数据或上述两者之一,并将其写入该硬件设备,使该硬件设备恢复为所述需要访问硬件设备的进程的配置。
3.根据权利要求2所述的方法,其特征在于,所述进程镜像文件是指用户模式下驱动器的进程镜像中的文件,该文件用于保存该硬件设备寄存器和I/O状态数据或上述两者之一且为每个进程所独享的数据。
4.根据权利要求1所述的方法,其特征在于,还包括:
若所述需要访问硬件设备的进程获取了访问该硬件设备的互斥锁,判断所述需要访问硬件设备的线程的ID与已经获得该互斥锁的线程的ID是否相同;
若与已经获得该互斥锁的线程的ID相同,则将互斥锁计数器的值加1,所述需要访问硬件设备的线程继续使用该硬件设备;若与已经获得该互斥锁的线程的ID不相同,则所述需要访问硬件设备的线程等待,直到获得该互斥锁。
5.根据权利要求1所述的方法,其特征在于:若所述需要访问硬件设备的进程的ID与最近一次访问该硬件设备的进程的ID相同,则所述需要访问硬件设备的进程继续使用该硬件设备。
6.根据权利要求1所述的方法,其特征在于,还包括:
判断所述需要访问硬件设备的进程的互斥锁计数器的值是否大于等于1;
若该互斥锁计数器的值大于等于1,则表示所述需要访问硬件设备的进程已获取了访问该硬件设备的互斥锁,若该互斥锁计数器的值小于1,则表示所述需要访问硬件设备的进程没有获取访问该硬件设备的互斥锁。
7.根据权利要求1所述的方法,其特征在于,还包括:
所述需要访问硬件设备的进程结束使用该硬件设备后,判断所述需要访问硬件设备的进程的互斥锁计数器的值是否小于1;
若该互斥锁计数器的值小于1,则释放该互斥锁,并退出使用该硬件设备的状态,若该互斥锁计数器的值大于等于1,则将互斥锁计数器的值减1。
8.根据权利要求1所述的方法,其特征在于,所述需要访问硬件设备的进程是通过一个或者多个应用程序编程接口API来使用该硬件设备的。
9.根据权利要求8所述的方法,其特征在于,还包括:
判断该请求是否属于资源独占模式请求,若为资源独占模式请求,则所述资源独占模式下的起始应用程序编程接口API获取访问该硬件设备的互斥锁,所述需要访问硬件设备的进程连续使用该硬件设备直到所述需要访问硬件设备的进程完成所有的作业;
在所述需要访问硬件设备的进程完成所有的作业之后,释放该互斥锁,并退出使用该硬件设备的状态。
10.根据权利要求1所述的方法,其特征在于,还包括:注册所述需要访问硬件设备的进程的程序终止处理函数,该程序终止处理函数用于回收所述需要访问硬件设备的进程所有的数据信息并还原该硬件设备的状态。
11.根据权利要求10所述的方法,其特征在于,还包括如下步骤:
判断所述需要访问硬件设备的进程是否正使用该硬件设备;
若所述需要访问硬件设备的进程正使用该硬件设备,则释放该硬件设备;
若所述需要访问硬件设备的进程没有使用该硬件设备,则判断该进程的互斥锁计数器的值是否大于等于1;
若该互斥锁计数器的值大于等于1,则释放该互斥锁,将该互斥锁计数器的值设为0,退出所述需要访问硬件设备的进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海晨思电子科技有限公司;晨星半导体股份有限公司,未经上海晨思电子科技有限公司;晨星半导体股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210143390.9/1.html,转载请声明来源钻瓜专利网。