日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

硬件設(shè)備控制方法及驅(qū)動模塊的制作方法

文檔序號:6429317閱讀:429來源:國知局
專利名稱:硬件設(shè)備控制方法及驅(qū)動模塊的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及設(shè)備驅(qū)動技術(shù)領(lǐng)域,尤其涉及一種硬件設(shè)備控制方法及驅(qū)動模塊。
背景技術(shù)
計算機的操作系統(tǒng)用于管理計算機的硬件資源與軟件資源,其架構(gòu)如圖I所示,包括應(yīng)用層、內(nèi)核層和驅(qū)動程序,其中驅(qū)動程序與計算機的硬件設(shè)備對應(yīng),若硬件設(shè)備為聲卡,則對應(yīng)的驅(qū)動程序為聲卡驅(qū)動程序,若硬件設(shè)備為磁盤,則對應(yīng)的驅(qū)動程序為磁盤驅(qū)動程序,若硬件設(shè)備為網(wǎng)卡,則對應(yīng)的驅(qū)動程序為網(wǎng)卡驅(qū)動程序,驅(qū)動程序與對應(yīng)的硬件設(shè)備之間的接口為硬件接口 ;內(nèi)核層包括系統(tǒng)調(diào)用接口、虛擬文件系統(tǒng)以及虛擬設(shè)備;·虛擬設(shè)備可以分為三類字符類設(shè)備、塊設(shè)備以及網(wǎng)絡(luò)設(shè)備,例如,聲卡驅(qū)動程序?qū)?yīng)的虛擬設(shè)備為字符類設(shè)備,磁盤驅(qū)動程序?qū)?yīng)的虛擬設(shè)備為塊設(shè)備,網(wǎng)卡驅(qū)動程序?qū)?yīng)的虛擬設(shè)備為網(wǎng)絡(luò)設(shè)備,每個虛擬設(shè)備對應(yīng)一個驅(qū)動程序,應(yīng)用層通過虛擬設(shè)備控制對應(yīng)的驅(qū)動程序,驅(qū)動程序與對應(yīng)的虛擬設(shè)備之間的接口為驅(qū)動接口?,F(xiàn)有技術(shù)中,每個硬件設(shè)備均對應(yīng)一個驅(qū)動程序,如圖2所示,硬件設(shè)備I對應(yīng)的驅(qū)動程序為驅(qū)動程序A,硬件設(shè)備I與驅(qū)動程序A之間的接口為硬件接口 1A,驅(qū)動程序A與對應(yīng)的虛擬設(shè)備a之間的接口為驅(qū)動接口 Aa,驅(qū)動程序A部署在驅(qū)動文件A中。隨著用戶要求的提高,可能需要對計算機中的硬件設(shè)備的功能進行擴展,但是硬件設(shè)備的原有驅(qū)動程序無法針對擴展的功能進行控制,因此需要同時對硬件設(shè)備的驅(qū)動程序進行擴展?,F(xiàn)有技術(shù)在對硬件設(shè)備的驅(qū)動程序進行擴展時,一般將用于對擴展的功能進行控制的新增驅(qū)動程序與原有驅(qū)動程序部署在兩個獨立的驅(qū)動文件中,新增驅(qū)動程序獨立完成對擴展的功能的控制,如圖3所示,硬件設(shè)備I對應(yīng)的驅(qū)動程序包括原有驅(qū)動程序A和新增驅(qū)動程序B,硬件設(shè)備I與原有驅(qū)動程序A之間的硬件接口為硬件接口 1A,硬件設(shè)備I與新增驅(qū)動程序B之間的硬件接口為硬件接口 1B,原有驅(qū)動程序A與對應(yīng)的虛擬設(shè)備a之間的驅(qū)動接口為驅(qū)動接口 Aa,新增驅(qū)動程序B與對應(yīng)的虛擬設(shè)備b之間的驅(qū)動接口為驅(qū)動接口 Bb,原有驅(qū)動程序A部署在驅(qū)動文件A中,新增驅(qū)動程序B部署在驅(qū)動文件B中?;诂F(xiàn)有技術(shù)提出的驅(qū)動程序擴展方法對硬件設(shè)備進行控制時,至少存在下述兩個缺陷I、新增驅(qū)動程序在對硬件設(shè)備進行控制時,需要使用驅(qū)動資源,例如子函數(shù)和全局變量,新增驅(qū)動程序需要使用的某些子函數(shù)可能已經(jīng)部署在原有驅(qū)動程序中,但是新增驅(qū)動程序無法直接調(diào)用處于不同驅(qū)動文件中的原有驅(qū)動程序中的子函數(shù),因此新增驅(qū)動程序需要重新部署這些子函數(shù),也就是說某些子函數(shù)既要在原有驅(qū)動程序中部署,也要在新增驅(qū)動程序中部署,從而浪費了操作系統(tǒng)較多的存儲資源;2、新增驅(qū)動程序需要使用的某些全局變量可能已經(jīng)部署在原有驅(qū)動程序中,新增驅(qū)動程序在對硬件設(shè)備進行控制時,若需要使用這些全局變量,則向原有驅(qū)動程序請求獲取這些全局變量的內(nèi)容,原有驅(qū)動程序讀取這些全局變量的內(nèi)容,然后再反饋給新增驅(qū)動程序,新增驅(qū)動程序利用接收到的全局變量的內(nèi)容對硬件設(shè)備進行控制,此外,新增驅(qū)動程序在對硬件設(shè)備進行控制之后,若對全局變量的內(nèi)容進行了修改,則需要將修改后的內(nèi)容發(fā)送給原有驅(qū)動程序,由原有驅(qū)動程序?qū)@些全局變量進行內(nèi)容更新,因此使得新增驅(qū)動程序和原有驅(qū)動程序之間需要進行較多的信息交互,浪費了較多的處理資源。

發(fā)明內(nèi)容
本發(fā)明實施例提供一種硬件設(shè)備控制方法及驅(qū)動模塊,用以解決現(xiàn)有技術(shù)中存在的浪費了操作系統(tǒng)較多的存儲資源及處理資源的問題。本發(fā)明實施例技術(shù)方案如下一種硬件設(shè)備控制方法,該方法包括步驟硬件設(shè)備的第一驅(qū)動模塊通過對應(yīng)的虛擬設(shè)備接收控制操作信息,其中,所述第一驅(qū)動模塊與所述硬件設(shè)備的第二驅(qū)動模塊部署于同一驅(qū)動文件中;所述第一驅(qū)動模塊根據(jù)接收到的控制操作信息,確定對所述硬件設(shè) 備進行控制時所需的驅(qū)動資源;并在確定出的驅(qū)動資源中,查找部署于所述第二驅(qū)動模塊中的驅(qū)動資源;所述第一驅(qū)動模塊從所述第二驅(qū)動模塊中調(diào)用查找到的驅(qū)動資源;并根據(jù)部署于所述第一驅(qū)動模塊中的驅(qū)動資源以及從第二驅(qū)動模塊中調(diào)用的驅(qū)動資源,對所述硬件設(shè)備進行控制。一種驅(qū)動模塊,所述驅(qū)動模塊與對應(yīng)同一硬件設(shè)備的另一驅(qū)動模塊部署于同一驅(qū)動文件中,所述驅(qū)動模塊包括控制操作信息接收單元,用于通過所述驅(qū)動模塊對應(yīng)的虛擬設(shè)備接收控制操作信息;驅(qū)動資源確定單元,用于根據(jù)控制操作信息接收單元接收到的控制操作信息,確定對所述硬件設(shè)備進行控制時所需的驅(qū)動資源;驅(qū)動資源查找單元,用于在驅(qū)動資源確定單元確定出的驅(qū)動資源中,查找部署于所述另一驅(qū)動模塊中的驅(qū)動資源;驅(qū)動資源調(diào)用單元,用于從所述另一驅(qū)動模塊中調(diào)用驅(qū)動資源查找單元查找到的驅(qū)動資源;硬件設(shè)備控制單元,用于根據(jù)部署于所述驅(qū)動模塊中的驅(qū)動資源以及驅(qū)動資源調(diào)用單元從所述另一驅(qū)動模塊中調(diào)用的驅(qū)動資源,對所述硬件設(shè)備進行控制。本發(fā)明實施例技術(shù)方案中,硬件設(shè)備的第一驅(qū)動模塊與該硬件設(shè)備的第二驅(qū)動模塊部署于同一驅(qū)動文件中,第一驅(qū)動模塊首先根據(jù)接收到的控制操作信息,確定對該硬件設(shè)備進行控制時所需的驅(qū)動資源,并在確定出的驅(qū)動資源中,查找部署于第二驅(qū)動模塊中的驅(qū)動資源,第一驅(qū)動模塊從第二驅(qū)動模塊中調(diào)用查找到的驅(qū)動資源后對該硬件設(shè)備進行控制。由上可見,本發(fā)明實施例技術(shù)方案中,硬件設(shè)備對應(yīng)的第一驅(qū)動模塊和第二驅(qū)動模塊部署在同一驅(qū)動文件中,因此第一驅(qū)動模塊可以直接調(diào)用第二驅(qū)動模塊中的驅(qū)動資源,無需再重新部署這些驅(qū)動資源,也無需和第二驅(qū)動模塊之間進行信息交互來獲得這些驅(qū)動資源,從而有效地節(jié)省了操作系統(tǒng)較多的存儲資源和處理資源。


圖I為現(xiàn)有技術(shù)中,操作系統(tǒng)架構(gòu)示意圖;圖2為現(xiàn)有技術(shù)中,硬件設(shè)備與驅(qū)動程序的關(guān)系示意圖;圖3為現(xiàn)有技術(shù)中,驅(qū)動程序擴展方法實現(xiàn)示意圖;圖4為本發(fā)明實施例中,硬件設(shè)備控制方法流程示意圖;圖5為本發(fā)明實施例中,驅(qū)動程序擴展方法實現(xiàn)示意 圖6為本發(fā)明實施例中,驅(qū)動模塊結(jié)構(gòu)示意圖。
具體實施例方式下面結(jié)合各個附圖對本發(fā)明實施例技術(shù)方案的主要實現(xiàn)原理具體實施方式
及其對應(yīng)能夠達到的有益效果進行詳細(xì)地闡述。如圖4所示,為本發(fā)明實施例中硬件設(shè)備控制方法流程圖,其具體處理流程如下步驟41,硬件設(shè)備的第一驅(qū)動模塊通過對應(yīng)的虛擬設(shè)備接收控制操作信息,其中,所述第一驅(qū)動模塊與所述硬件設(shè)備的第二驅(qū)動模塊部署于同一驅(qū)動文件中;其中,上述第一驅(qū)動模塊對應(yīng)硬件設(shè)備的新增驅(qū)動程序,第二驅(qū)動模塊對應(yīng)硬件設(shè)備的原有驅(qū)動程序,本發(fā)明實施例在對硬件設(shè)備的驅(qū)動程序進行擴展時,不再將新增驅(qū)動程序和原有驅(qū)動程序部署在兩個獨立的驅(qū)動文件中,而是部署在同一驅(qū)動文件中;新增驅(qū)動程序和原有驅(qū)動程序共用原有的硬件接口,即新增驅(qū)動程序與原有驅(qū)動程序均通過原 有驅(qū)動程序?qū)?yīng)的硬件接口與硬件設(shè)備相連;為了實現(xiàn)應(yīng)用層對驅(qū)動程序的控制,每個驅(qū)動程序均與一個虛擬設(shè)備對應(yīng),因此新增驅(qū)動程序和原有驅(qū)動程序分別對應(yīng)不同的虛擬設(shè)備,也就分別對應(yīng)不同的驅(qū)動接口。如圖5所示,硬件設(shè)備I對應(yīng)的驅(qū)動程序包括原有驅(qū)動程序A和新增驅(qū)動程序B,新增驅(qū)動程序A和新增驅(qū)動程序B均部署在驅(qū)動文件A中,原有驅(qū)動程序A與硬件設(shè)備I之間的硬件接口為硬件接口 1A,新增驅(qū)動程序B與硬件設(shè)備I之間的硬件接口也為硬件接口 1A,原有驅(qū)動程序A對應(yīng)的虛擬設(shè)備為虛擬設(shè)備a,新增驅(qū)動程序B對應(yīng)的虛擬設(shè)備為虛擬設(shè)備b,原有驅(qū)動程序A與虛擬設(shè)備a之間的驅(qū)動接口為驅(qū)動接口 Aa,新增驅(qū)動程序B與虛擬設(shè)備b之間的驅(qū)動接口為驅(qū)動接口 Bb。應(yīng)用層首先確定需要對硬件設(shè)備進行控制的驅(qū)動程序,然后通過該驅(qū)動程序?qū)?yīng)的虛擬設(shè)備,將控制操作信息傳輸給該驅(qū)動程序,驅(qū)動程序根據(jù)接收到的控制操作信息對硬件設(shè)備進行相應(yīng)的控制。步驟42,所述第一驅(qū)動模塊根據(jù)接收到的控制操作信息,確定對所述硬件設(shè)備進行控制時所需的驅(qū)動資源;新增驅(qū)動程序需要根據(jù)驅(qū)動資源,針對擴展的功能對硬件設(shè)備進行控制,其中,新增驅(qū)動程序所需的驅(qū)動資源既包括部署在新增驅(qū)動程序中的驅(qū)動資源,也包括部署在原有驅(qū)動程序中的驅(qū)動資源。步驟43,在確定出的驅(qū)動資源中,查找部署于所述第二驅(qū)動模塊中的驅(qū)動資源;本發(fā)明實施例中,查找到的驅(qū)動資源可以為子函數(shù)和/或全局變量。步驟44,所述第一驅(qū)動模塊從所述第二驅(qū)動模塊中調(diào)用查找到的驅(qū)動資源;由于新增驅(qū)動程序和原有驅(qū)動程序部署在同一驅(qū)動文件中,因此新增驅(qū)動程序可以直接從位于同一驅(qū)動文件中的原有驅(qū)動程序中調(diào)用某些驅(qū)動資源,例如某些子函數(shù)或全局變量。若查找到的驅(qū)動資源為子函數(shù),則新增驅(qū)動程序直接從原有驅(qū)動程序中調(diào)用該子函數(shù),而無需在新增驅(qū)動程序中重新部署該子函數(shù),從而節(jié)省了操作系統(tǒng)較多的存儲資源。若查找到的驅(qū)動資源為全局變量,則新增驅(qū)動程序直接從原有驅(qū)動程序中讀取該全局變量的內(nèi)容,而無需新增驅(qū)動程序向原有驅(qū)動程序獲取這些全局變量的內(nèi)容,從而減少了新增驅(qū)動程序和原有驅(qū)動程序之間的信息交互,節(jié)省了操作系統(tǒng)較多的處理資源。步驟45,根據(jù)部署于所述第一驅(qū)動模塊中的驅(qū)動資源以及從第二驅(qū)動模塊中調(diào)用的驅(qū)動資源,對所述硬件設(shè)備進行控制。若查找到的驅(qū)動資源為全局變量,則新增驅(qū)動程序在對硬件設(shè)備進行控制時,可能會修改該全局變量的內(nèi)容,那么新增驅(qū)動程序就需要在對硬件設(shè)備進行控制之后,對部署在原有驅(qū)動程序中的該全局變量進行內(nèi)容更新,由于新增驅(qū)動程序和原有驅(qū)動程序部署在同一驅(qū)動文件中,因此新增驅(qū)動程序直接對該全局變量進行內(nèi)容更新,而無需新增驅(qū)動程序?qū)⑿薷暮蟮膬?nèi)容發(fā)送給原有驅(qū)動程序,由原有驅(qū)動程序進行內(nèi)容更新,因此減少了新增驅(qū)動程序和原有驅(qū)動程序之間的信息交互,節(jié)省了操作系統(tǒng)較多的處理資源。本發(fā)明實施例中,新增驅(qū)動程序?qū)?yīng)的虛擬設(shè)備可以為字符類設(shè)備、塊設(shè)備或網(wǎng)絡(luò)設(shè)備。
以新增驅(qū)動程序?qū)?yīng)的虛擬設(shè)備為字符類設(shè)備、操作系統(tǒng)為Linux系統(tǒng)為例,下面介紹新增驅(qū)動程序的驅(qū)動接口函數(shù)
static struct file—operations driver—a—fops = {
.owner = THIS—MODULE,
.open = driver a open,//打開該字符類設(shè)備
.release = driver—a—release, Il關(guān)閉該字符類設(shè)備 .ioctl = driver—a—ioctl,//控制該字符類設(shè)備
.write = driver—a—write, //寫該字符類設(shè)備.read = driver—a—read,//讀該字符類設(shè)備
};
static ssize—t driver—a—open(struct inode *inode, struct file *file)
{
//在此處填寫代碼,可以為 空,也可填寫對硬件設(shè)備控制的代碼 }
static ssize t driver a release(struct inode *inode, struct file *file)
{
//在此處填寫代碼,可以為空,也可填寫對硬件設(shè)備控制的代碼 }
static ssize—t driver—a—ioctl(struct inode *inode, struct file * file,unsigned intcmd, unsigned long arg)
{
//在此處填寫代碼,可以為空,也可填寫對硬件設(shè)備控制的代碼 //cmd來至Linux系統(tǒng)應(yīng)用層的命令字 //arg來至Linux系統(tǒng)應(yīng)用層的變量或指針地址 }
static ssize—t driver—a—write(struct file * file,const char *buf, size—t len, loff t* offset)
{
//在此處填寫代碼,可以為空,也可填寫對硬件設(shè)備控制的代碼 //*buf來至Linux系統(tǒng)應(yīng)用層的數(shù)據(jù)
//Ien來至Linux系統(tǒng)應(yīng)用層的數(shù)據(jù)的長度(*buf指向空間內(nèi)數(shù)據(jù)字節(jié)數(shù)) //*offset來至Linux系統(tǒng)應(yīng)用層的數(shù)據(jù)地址偏移量,一般=0 }
static ssize—t driver_a_read(struct file *file, char *buf, size—t len, IofF t * offset) {
//在此處填寫代碼,可以為空,也可填寫對硬件設(shè)備控制的代碼

//*buf來至Linux系統(tǒng)應(yīng)用層的數(shù)據(jù)//Ien來至Linux系統(tǒng)應(yīng)用層的數(shù)據(jù)的長度(*buf指向空間內(nèi)數(shù)據(jù)字節(jié)數(shù))//*offset來至Linux系統(tǒng)應(yīng)用層的數(shù)據(jù)地址偏移量,一般=0}在新增驅(qū)動程序中,driver_a_open()函數(shù)和driver_a_release ()函數(shù)是必須實現(xiàn)的,其它函數(shù)可以根據(jù)實際需要有選擇的增加。 新增驅(qū)動程序的虛擬設(shè)備注冊代碼可以但不限于為下述
static —devinit int driver—A_probe(.··)
{
driver—a—major = register—chrdev(0, '’driver—a' & driver—a—fops);driver—a—class = class—create(THIS—MODULE, "driver—a”);temp—class = device—create(driver—a—class, NULL,MKDEV(driver a major, 0), NULL, ”driver—a”);
} 若新增驅(qū)動程序?qū)?yīng)的驅(qū)動模塊為驅(qū)動模塊driver_a. ko, Linux系統(tǒng)運行起來后,執(zhí)行insmod driver_a. ko,安裝新增驅(qū)動程序,即可成功創(chuàng)建新增驅(qū)動程序?qū)?yīng)的虛擬設(shè)備/dev/driver_a。Linux系統(tǒng)應(yīng)用層通過虛擬設(shè)備打開或關(guān)閉新增驅(qū)動程序,實現(xiàn)代碼如下fd = open(" /dev/driver_a" , 0_RDWR) ;// 打開//可以創(chuàng)建進程對設(shè)備進行write () ;read() ;ioctl ();close (fd) ;// 關(guān)閉下面以對某家庭信息終端中的聲卡進行控制的方法為例,說明對驅(qū)動程序進行擴展的方法。某家庭信息終端中,聲卡的原有驅(qū)動程序僅支持來自操作系統(tǒng)的數(shù)字流媒體聲音,原有驅(qū)動程序通過I2S接口發(fā)送給聲卡的音頻編碼器(codec)芯片,通過I2C接口控制音頻codec芯片的工作狀態(tài)。若需要針對聲卡進行功能擴展,例如增加頻率調(diào)制(FM,F(xiàn)requency Modulation)收音機的功能,這就需要在用戶收聽收音機時,將音頻codec的音源切換到FM接收芯片輸出的模擬音頻上?;诒景l(fā)明實施例提出的驅(qū)動程序擴展方法,利用原有驅(qū)動程序的I2C接口來控制音頻codec芯片,在原有驅(qū)動程序所在的驅(qū)動文件中部署新增的字符類設(shè)備的驅(qū)動程序,即新增驅(qū)動程序,擴展出新的驅(qū)動接口與新增驅(qū)動程序?qū)?yīng)。由于現(xiàn)有技術(shù)中,對硬件設(shè)備的驅(qū)動程序進行擴展時,需要對新增驅(qū)動程序進行重新部署,那么就需要程序編程人員完成驅(qū)動接口、新增驅(qū)動程序以及硬件接口三部分的代碼,代碼量比較大,因此編程難度較高。本發(fā)明實施例中,在對硬件設(shè)備的驅(qū)動程序進行擴展時,只需要在原有驅(qū)動程序所在的驅(qū)動文件中嵌入新增驅(qū)動程序即可,因此能夠有效地減少新增的代碼量,降低了編程難度。本發(fā)明實施例中的硬件控制方法可以但不限于適用于Linux操作系統(tǒng),還適用于Windows操作系統(tǒng)。由上述處理過程可知,本發(fā)明實施例技術(shù)方案中,硬件設(shè)備的第一驅(qū)動模塊與該硬件設(shè)備的第二驅(qū)動模塊部署于同一驅(qū)動文件中,第一驅(qū)動模塊首先根據(jù)接收到的控制操作信息,確定對該硬件設(shè)備進行控制時所需的驅(qū)動資源,并在確定出的驅(qū)動資源中,查找部署于第二驅(qū)動模塊中的驅(qū)動資源,第一驅(qū)動模塊從第二驅(qū)動模塊中調(diào)用查找到的驅(qū)動資源
后對該硬件設(shè)備進行控制。由上可見,本發(fā)明實施例技術(shù)方案中,硬件設(shè)備對應(yīng)的第一驅(qū)動模塊和第二驅(qū)動模塊部署在同一驅(qū)動文件中,因此第一驅(qū)動模塊可以直接調(diào)用第二驅(qū)動模塊中的驅(qū)動資源,無需再重新部署這些驅(qū)動資源,也無需和第二驅(qū)動模塊之間進行信息交互來獲得這些驅(qū)動資源,從而有效地節(jié)省了操作系統(tǒng)較多的存儲資源和處理資源。相應(yīng)的,本發(fā)明實施例還提供一種驅(qū)動模塊,其結(jié)構(gòu)如圖6所示,該驅(qū)動模塊與對應(yīng)同一硬件設(shè)備的另一驅(qū)動模塊部署于同一驅(qū)動文件中,所述驅(qū)動模塊包括控制操作信息接收單元61、驅(qū)動資源確定單元62、驅(qū)動資源查找單元63、驅(qū)動資源調(diào)用單元64和硬件設(shè)備控制單兀65,其中控制操作信息接收單元61,用于通過所述驅(qū)動模塊對應(yīng)的虛擬設(shè)備接收控制操作
信息;驅(qū)動資源確定單元62,用于根據(jù)控制操作信息接收單元61接收到的控制操作信息,確定對所述硬件設(shè)備進行控制時所需的驅(qū)動資源;驅(qū)動資源查找單元63,用于在驅(qū)動資源確定單元62確定出的驅(qū)動資源中,查找部署于所述另一驅(qū)動模塊中的驅(qū)動資源;驅(qū)動資源調(diào)用單元64,用于從所述另一驅(qū)動模塊中調(diào)用驅(qū)動資源查找單元63查找到的驅(qū)動資源;硬件設(shè)備控制單元65,用于根據(jù)部署于所述驅(qū)動模塊中的驅(qū)動資源以及驅(qū)動資源調(diào)用單元64從所述另一驅(qū)動模塊中調(diào)用的驅(qū)動資源,對所述硬件設(shè)備進行控制。較佳地,部署于所述另一驅(qū)動模塊中的驅(qū)動資源包含下述至少一種資源子函數(shù);
全局變量。更佳地,若驅(qū)動資源查找單元63查找到的驅(qū)動資源為全局變量,則驅(qū)動資源調(diào)用單元64從所述另一驅(qū)動模塊中讀取所述全局變量的內(nèi)容。更佳地,若驅(qū)動資源查找單元63查找到的驅(qū)動資源為全局變量,則所述驅(qū)動模塊還包括內(nèi)容確定單元,用于確定硬件設(shè)備控制單元65對所述硬件設(shè)備進行控制后,所述全局變量的內(nèi)容;內(nèi)容更新單元,用于根據(jù)內(nèi)容確定單元確定出的內(nèi)容,對部署在所述另一驅(qū)動模塊中的所述全局變量進行內(nèi)容更新。較佳地,所述驅(qū)動模塊對應(yīng)的虛擬設(shè)備與所述另一驅(qū)動模塊對應(yīng)的虛擬設(shè)備不同。較佳地,所述驅(qū)動模塊對應(yīng)的虛擬設(shè)備為字符類設(shè)備、塊設(shè)備或網(wǎng)絡(luò)設(shè)備。顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動和變型在 內(nèi)。
權(quán)利要求
1.一種硬件設(shè)備控制方法,其特征在于,包括 硬件設(shè)備的第一驅(qū)動模塊通過對應(yīng)的虛擬設(shè)備接收控制操作信息,其中,所述第一驅(qū)動模塊與所述硬件設(shè)備的第二驅(qū)動模塊部署于同一驅(qū)動文件中; 所述第一驅(qū)動模塊根據(jù)接收到的控制操作信息,確定對所述硬件設(shè)備進行控制時所需的驅(qū)動資源;并 在確定出的驅(qū)動資源中,查找部署于所述第二驅(qū)動模塊中的驅(qū)動資源; 所述第一驅(qū)動模塊從所述第二驅(qū)動模塊中調(diào)用查找到的驅(qū)動資源;并根據(jù)部署于所述第一驅(qū)動模塊中的驅(qū)動資源以及從第二驅(qū)動模塊中調(diào)用的驅(qū)動資源,對所述硬件設(shè)備進行控制。
2.如權(quán)利要求I所述的硬件設(shè)備控制方法,其特征在于,查找到的驅(qū)動資源包含下述至少一種資源子函數(shù);全局變量。
3.如權(quán)利要求2所述的硬件設(shè)備控制方法,其特征在于,若查找到的驅(qū)動資源為全局變量,則所述第一驅(qū)動模塊從所述第二驅(qū)動模塊中調(diào)用查找到的驅(qū)動資源,具體包括 所述第一驅(qū)動模塊從所述第二驅(qū)動模塊中讀取所述全局變量的內(nèi)容。
4.如權(quán)利要求2所述的硬件設(shè)備控制方法,其特征在于,若查找到的驅(qū)動資源為全局變量,則還包括 所述第一驅(qū)動模塊確定對所述硬件設(shè)備進行控制后,所述全局變量的內(nèi)容;以及 根據(jù)確定出的內(nèi)容,對部署在第二驅(qū)動模塊中的所述全局變量進行內(nèi)容更新。
5.如權(quán)利要求I所述的硬件設(shè)備控制方法,其特征在于,所述第一驅(qū)動模塊與所述第二驅(qū)動模塊對應(yīng)不同的虛擬設(shè)備。
6.如權(quán)利要求I所述的硬件設(shè)備控制方法,其特征在于,所述第一驅(qū)動模塊對應(yīng)的虛擬設(shè)備為字符類設(shè)備、塊設(shè)備或網(wǎng)絡(luò)設(shè)備。
7.—種驅(qū)動模塊,其特征在于,所述驅(qū)動模塊與對應(yīng)同一硬件設(shè)備的另一驅(qū)動模塊部署于同一驅(qū)動文件中,所述驅(qū)動模塊包括 控制操作信息接收單元,用于通過所述驅(qū)動模塊對應(yīng)的虛擬設(shè)備接收控制操作信息;驅(qū)動資源確定單元,用于根據(jù)控制操作信息接收單元接收到的控制操作信息,確定對所述硬件設(shè)備進行控制時所需的驅(qū)動資源; 驅(qū)動資源查找單元,用于在驅(qū)動資源確定單元確定出的驅(qū)動資源中,查找部署于所述另一驅(qū)動模塊中的驅(qū)動資源; 驅(qū)動資源調(diào)用單元,用于從所述另一驅(qū)動模塊中調(diào)用驅(qū)動資源查找單元查找到的驅(qū)動資源; 硬件設(shè)備控制單元,用于根據(jù)部署于所述驅(qū)動模塊中的驅(qū)動資源以及驅(qū)動資源調(diào)用單元從所述另一驅(qū)動模塊中調(diào)用的驅(qū)動資源,對所述硬件設(shè)備進行控制。
8.如權(quán)利要求7所述的驅(qū)動模塊,其特征在于,部署于所述另一驅(qū)動模塊中的驅(qū)動資源包含下述至少一種資源子函數(shù);全局變量。
9.如權(quán)利要求8所述的驅(qū)動模塊,其特征在于,若驅(qū)動資源查找單元查找到的驅(qū)動資源為全局變量,則驅(qū)動資源調(diào)用單元從所述另一驅(qū)動模塊中讀取所述全局變量的內(nèi)容。
10.如權(quán)利要求8所述的驅(qū)動模塊,其特征在于,若驅(qū)動資源查找單元查找到的驅(qū)動資源為全局變量,則所述驅(qū)動模塊還包括內(nèi)容確定單元,用于確定硬件設(shè)備控制單元對所述硬件設(shè)備進行控制后,所述全局變量的內(nèi)容; 內(nèi)容更新單元,用于根據(jù)內(nèi)容確定單元確定出的內(nèi)容,對部署在所述另一驅(qū)動模塊中的所述全局變量進行內(nèi)容更新。
全文摘要
本發(fā)明公開了一種硬件設(shè)備控制方法及驅(qū)動模塊,該方法包括步驟硬件設(shè)備的第一驅(qū)動模塊通過對應(yīng)的虛擬設(shè)備接收控制操作信息,其中,所述第一驅(qū)動模塊與所述硬件設(shè)備的第二驅(qū)動模塊部署于同一驅(qū)動文件中;所述第一驅(qū)動模塊根據(jù)接收到的控制操作信息,確定對所述硬件設(shè)備進行控制時所需的驅(qū)動資源;并在確定出的驅(qū)動資源中,查找部署于所述第二驅(qū)動模塊中的驅(qū)動資源;所述第一驅(qū)動模塊從所述第二驅(qū)動模塊中調(diào)用查找到的驅(qū)動資源;并根據(jù)部署于所述第一驅(qū)動模塊中的驅(qū)動資源以及從第二驅(qū)動模塊中調(diào)用的驅(qū)動資源,對所述硬件設(shè)備進行控制。采用本發(fā)明技術(shù)方案,解決了現(xiàn)有技術(shù)中存在的浪費了操作系統(tǒng)較多的存儲資源及處理資源的問題。
文檔編號G06F13/10GK102902638SQ20111021043
公開日2013年1月30日 申請日期2011年7月26日 優(yōu)先權(quán)日2011年7月26日
發(fā)明者張宏海, 何晗春, 戴寅 申請人:北大方正集團有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1