亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種管腳分配的方法和裝置的制作方法

文檔序號:6463415閱讀:199來源:國知局
專利名稱:一種管腳分配的方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及計(jì)算機(jī)通信領(lǐng)域,特別涉及一種管腳分配的方法和裝置。
技術(shù)背景目前大多數(shù)的SoC(SystemonChip,集成在芯片上的系統(tǒng))芯片中都集成了大量外設(shè),出 于成本、封裝、功耗和功能重疊等多方面的考慮,芯片的設(shè)計(jì)者往往不會讓芯片的同一個管 腳只被一個外設(shè)使用,而是采取管腳復(fù)用技術(shù),也就是讓芯片的同一個管腳被2個或2個以 上的外設(shè)共用,在SoC的系統(tǒng)級寄存器中設(shè)置幾個配置寄存器,來選擇當(dāng)前使用某個管腳的 某個外設(shè)。通常系統(tǒng)的設(shè)計(jì)者在系統(tǒng)設(shè)計(jì)的時候就確定了系統(tǒng)需要使用的SoC外設(shè),并在系 統(tǒng)的初始化代碼中對設(shè)備配置寄存器做了設(shè)置,把系統(tǒng)需要的SoC外設(shè)設(shè)為可以正常工作?,F(xiàn)有技術(shù)在系統(tǒng)初始化時分配管腳,設(shè)置管腳模式,在系統(tǒng)運(yùn)行中保持管腳工作模式不 變。下面以目前主流的多任務(wù)操作系統(tǒng)(如linux系統(tǒng))的啟動過程為例來具體描述一下現(xiàn)有 的技術(shù)方案。如圖1所示是目前主流的多任務(wù)操作系統(tǒng)(如linux系統(tǒng))的啟動過程示意圖。該啟動過 程主要包括下面幾個步驟系統(tǒng)開始初始化;初始化管腳,同時分配管腳,根據(jù)各個管腳用 途設(shè)置管腳工作模式;初始化其它工作參數(shù);啟動設(shè)備驅(qū)動程序l、設(shè)備驅(qū)動程序2…設(shè)備驅(qū) 動程序N;運(yùn)行各種應(yīng)用程序。從上述步驟可以看出,系統(tǒng)開始初始化時,就必須根據(jù)硬件平臺的設(shè)計(jì),分配管腳和設(shè) 置每個管腳的工作模式,而且一旦設(shè)置了某個管腳的工作模式,在后面的設(shè)備驅(qū)動程序和應(yīng) 用程序中就不再改變管腳的工作模式,zn、按當(dāng)初已經(jīng)設(shè)置好的模式使用該管腳。因此在進(jìn)行 軟件模塊(如設(shè)備驅(qū)動程序)開發(fā)時就必須充分了解硬件設(shè)計(jì)時的管腳分配,增加了軟件設(shè) 計(jì)和硬件設(shè)計(jì)的相關(guān)性。在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題由于軟件設(shè)計(jì)(特別是操作系統(tǒng)軟件)和硬件設(shè)計(jì)的相關(guān)性,大大降低了軟件設(shè)計(jì)的獨(dú) 立性,導(dǎo)致軟件設(shè)計(jì)工作模塊化性能減弱,開發(fā)效率低。比如當(dāng)硬件平臺的外設(shè)有增減時, 除了單純增減相應(yīng)的設(shè)備驅(qū)動程序外,還需要修改系統(tǒng)初始化時對管腳的分配和設(shè)置,容易出錯且效率低。另外,在硬件平臺結(jié)構(gòu)越來越緊湊小巧,管腳數(shù)目有限,運(yùn)行任務(wù)種類越來 越多的趨勢下,很多時候使用不同的設(shè)備驅(qū)動程序要求按不同的工作模式使用數(shù)量有限的管 腳,現(xiàn)有的管腳分配和管理的方式就顯得很死板,管腳得不到最大限度的利用,復(fù)用性差。 有時為滿足應(yīng)用功能要求的設(shè)備接口的種類足夠,不得不在硬件設(shè)計(jì)上擴(kuò)充或增加管腳,增 加了硬件設(shè)計(jì)的復(fù)雜程度,提高了產(chǎn)品成本。發(fā)明內(nèi)容為了有效地進(jìn)行管腳的分配,本發(fā)明實(shí)施例提供了一種管腳分配的方法和裝置。所述技術(shù) 方案如下一方面,本發(fā)明實(shí)施例提供了一種管腳分配的方法,所述方法包括-初始化管腳;在系統(tǒng)的應(yīng)用程序調(diào)用設(shè)備驅(qū)動程序期間,根據(jù)設(shè)備的類型,進(jìn)行所述管腳的分配。 另一方面,本發(fā)明實(shí)施例還提供了一種管腳分配的裝置,所述裝置包括 初始化模塊l,用于初始化管腳;管腳分配模塊2,用于所述初始化模塊把管腳初始化后,在系統(tǒng)的應(yīng)用程序調(diào)用設(shè)備驅(qū) 動程序期間,根據(jù)所述設(shè)備類型,進(jìn)行所述管腳的分配。 本發(fā)明實(shí)施例提供的技術(shù)方案的有益效果是通過申請和設(shè)置管腳,用完后釋放管腳,實(shí)現(xiàn)了動態(tài)地分配管腳,與現(xiàn)有技術(shù)相比提高 了軟件設(shè)計(jì)的獨(dú)立性,完善了系統(tǒng)軟件開發(fā)的模塊化,而且開發(fā)效率高,不容易出錯;另外, 提高了管腳使用的靈活性,使管腳得到了最大限度的利用,復(fù)用性好,降低了硬件設(shè)計(jì)的復(fù) 雜度和產(chǎn)品成本。


圖1是現(xiàn)有技術(shù)中多任務(wù)操作系統(tǒng)的啟動過程示意圖; 圖2是本發(fā)明實(shí)施例1提供的管腳分配的方法流程圖; 圖3是本發(fā)明實(shí)施例2提供的管腳分配的方法流程圖; 圖4是本發(fā)明實(shí)施例3提供的管腳分配的裝置結(jié)構(gòu)圖。
具體實(shí)施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對本發(fā)明實(shí)施方式作進(jìn) 一步地詳細(xì)描述。本發(fā)明實(shí)施例提供的管腳分配的方法,具體包括初始化管腳;在系統(tǒng)的應(yīng)用程序調(diào)用 設(shè)備驅(qū)動程序期間,根據(jù)設(shè)備的類型,進(jìn)行管腳的分配。 實(shí)施例1本實(shí)施例中的設(shè)備具體是指獨(dú)占管腳型設(shè)備,獨(dú)占管腳型設(shè)備指一旦管腳分配成功,在 設(shè)備驅(qū)動程序運(yùn)行期間,管腳都不能被其他設(shè)備驅(qū)動使用,直到本設(shè)備驅(qū)動運(yùn)行完畢,釋放 管腳后才能被其他設(shè)備驅(qū)動使用。參見圖2,本發(fā)明實(shí)施例提供了一種管腳分配的方法,具體包括201:系統(tǒng)開始初始化,先對所有管腳作個初始化,并把管腳設(shè)置成最安全的模式,如高 阻狀態(tài)或高阻輸入模式,但不具體分配每個管腳的功能和設(shè)置管腳的工作模式。然后,初始 化系統(tǒng)其它的工作參數(shù),如時鐘參數(shù)、通訊接口參數(shù)等。202:系統(tǒng)初始化后,根據(jù)不同的應(yīng)用需求運(yùn)行若干個應(yīng)用程序(應(yīng)用程序1…N),每個 應(yīng)用程序根據(jù)自己的功能需要調(diào)用若干個不同的設(shè)備驅(qū)動程序(設(shè)備驅(qū)動程序1…N)。比如 有查看時間的應(yīng)用需求,就需要運(yùn)行"査看時間功能"的應(yīng)用程序,應(yīng)用程序要從實(shí)時時鐘 芯片中讀取當(dāng)前時間,就需要調(diào)用"實(shí)時時鐘設(shè)備驅(qū)動程序"來完成。203:設(shè)備驅(qū)動程序向系統(tǒng)申請?jiān)O(shè)備所需要的管腳,系統(tǒng)查詢管腳的狀態(tài),根據(jù)管腳的狀 態(tài)得到申請管腳結(jié)果(例如如果管腳的狀態(tài)是忙或禁止使用,則得到的結(jié)果為申請失??; 如果管腳的狀態(tài)是空閑,則得到的結(jié)果為申請成功),系統(tǒng)把申請管腳結(jié)果返回給設(shè)備驅(qū)動程 序,設(shè)備驅(qū)動程序根據(jù)系統(tǒng)返回的申請管腳結(jié)果,判斷管腳是否申請成功,如果是,則執(zhí)行204;否則,執(zhí)行207。204:設(shè)備驅(qū)動程序把申請到的管腳設(shè)置成設(shè)備需要的工作模式,然后設(shè)備驅(qū)動程序向系 統(tǒng)申請?jiān)O(shè)備,系統(tǒng)返回申請?jiān)O(shè)備結(jié)果,設(shè)備驅(qū)動程序根據(jù)系統(tǒng)返回的申請?jiān)O(shè)備結(jié)果,判斷設(shè) 備是否申請成功,如果是,則執(zhí)行205:否則,執(zhí)行208。205:設(shè)備驅(qū)動程序打開該設(shè)備,應(yīng)用程序判斷應(yīng)用程序所需的設(shè)備是否都成功打開,如 果是,則執(zhí)行206;否則,執(zhí)行209。206:應(yīng)用程序開始運(yùn)行,當(dāng)應(yīng)用程序運(yùn)行完畢后釋放其占用的設(shè)備,然后釋放管腳。當(dāng) 釋放完應(yīng)用程序占用的設(shè)備所用的所有管腳后,應(yīng)用程序完全關(guān)閉,所占用的資源完全釋放, 然后結(jié)束。207:設(shè)備驅(qū)動程序向應(yīng)用程序返回調(diào)用設(shè)備驅(qū)動程序失敗的結(jié)果,并由應(yīng)用程序決定是 否繼續(xù)申請管腳和后續(xù)操作,然后結(jié)束。208:設(shè)備驅(qū)動程序釋放管腳,然后向應(yīng)用程序返回調(diào)用設(shè)備驅(qū)動程序失敗的結(jié)果,并由應(yīng)用程序決定后續(xù)操作,然后結(jié)束。209:設(shè)備驅(qū)動程序釋放設(shè)備,然后釋放管腳,返回設(shè)備打開失敗的結(jié)果,然后結(jié)束。上述201中的對管腳的初始化、203中的申請管腳和206中的釋放管腳可以統(tǒng)稱為管腳 資源管理。管腳資源管理,可以用在設(shè)備的驅(qū)動程序打開設(shè)備時,對所使用的管腳進(jìn)行申請; 以及在關(guān)閉設(shè)備時將設(shè)備使用的管腳釋放給其它的設(shè)備。管腳資源管理主要包含管腳上電 初始化、申請管腳和釋放管腳。管腳上電初始化,在系統(tǒng)初始化時使用,負(fù)責(zé)將系統(tǒng)的所有 管腳初始化,并把管腳設(shè)置成最安全的模式,如高阻狀態(tài)或高阻輸入模式,等后面設(shè)備使用 管腳時再設(shè)置其具體的工作模式;申請管腳,在設(shè)備驅(qū)動程序打開設(shè)備時使用,負(fù)責(zé)申請指 定的管腳,并把申請到的管腳設(shè)置為設(shè)備需要的工作模式;釋放管腳,在設(shè)備驅(qū)動程序關(guān)閉 設(shè)備時使用,負(fù)責(zé)釋放關(guān)閉了的設(shè)備的管腳。在操作系統(tǒng)中,管腳資源管理可以具體為管腳 資源管理函數(shù),具體包括管腳上電初始化函數(shù)(void—init pin—mutex—init( void))、申請管 腳函數(shù)(int request_pin( int request—id, pin—mutex—callback_t callback, void *context))和釋放管 腳函數(shù)(int free_pin( int requested ))。針對不同的硬件平臺,只需完成一套匹配的管腳資源 管理函數(shù)即可。在各個軟件模塊(設(shè)備驅(qū)動程序)開發(fā)的時候,可以不去理會具體的硬件接 口,只需調(diào)用這套統(tǒng)一的管腳資源管理函數(shù),按申請->設(shè)置->使用->釋放的流程使用即可。 即使更換硬件平臺或增減硬件設(shè)備,只需調(diào)整管腳資源管理函數(shù),而各個軟件模塊(設(shè)備驅(qū) 動程序)不需進(jìn)行額外的更改。圖2所示的方法,通過申請和設(shè)置管腳,用完后釋放管腳,實(shí)現(xiàn)了動態(tài)地分配管腳,與 現(xiàn)有技術(shù)相比提高了軟件設(shè)計(jì)的獨(dú)立性,完善了系統(tǒng)軟件開發(fā)的模塊化,而且開發(fā)效率高, 不容易出錯;另外,提高了管腳使用的靈活性,使管腳得到了最大限度的利用,復(fù)用性好, 降低了硬件設(shè)計(jì)的復(fù)雜度和產(chǎn)品成本。實(shí)施例2另外,本發(fā)明實(shí)施例還提供了另一種管腳分配的方法,與實(shí)施例1所示的方法的區(qū)別在 于,本實(shí)施例中的設(shè)備具體是指復(fù)用管腳型設(shè)備,復(fù)用管腳型設(shè)備指在設(shè)備驅(qū)動程序運(yùn)行期 間,只有在執(zhí)行I/O操作時才申請并占用管腳,執(zhí)行完I/O操作后馬上釋放管腳,并且不執(zhí) 行1/0操作時管腳可以被其他設(shè)備使用。當(dāng)設(shè)備具體是指復(fù)用管腳型設(shè)備時,申請管腳和申 堉設(shè)備的順序不同,并且申請管腳和釋放管腳的情況也不相同,而管腳初始化、以及運(yùn)行應(yīng) f程序等步驟均與實(shí)施例1相同,此處不再贅述。參見圖3,本實(shí)施例中申請管腳、申請?jiān)O(shè) 備以及釋放管腳的過程具體如下301:設(shè)備驅(qū)動程序向系統(tǒng)申請?jiān)O(shè)備,系統(tǒng)返回申請?jiān)O(shè)備結(jié)果,設(shè)備驅(qū)動程序根據(jù)系統(tǒng)返回的申請?jiān)O(shè)備結(jié)果,判斷設(shè)備是否申請成功,如果是,則執(zhí)行302;否則,執(zhí)行304。302:設(shè)備驅(qū)動程序打開該設(shè)備,當(dāng)設(shè)備驅(qū)動程序執(zhí)行到I/0操作時,設(shè)備驅(qū)動程序向系 統(tǒng)申請I/0所需要的管腳,系統(tǒng)査詢管腳的狀態(tài),根據(jù)管腳的狀態(tài)得到申請管腳結(jié)果(例如 如果管腳的狀態(tài)是忙或禁止使用,則得到的結(jié)果為申請失??;如果管腳的狀態(tài)是空閑,則得 到的結(jié)果為申請成功),系統(tǒng)把申請管腳結(jié)果返回給設(shè)備驅(qū)動程序,設(shè)備驅(qū)動程序根據(jù)系統(tǒng)返 回的申請管腳結(jié)果,判斷管腳是否申請成功,如果是,則執(zhí)行303;否則,.執(zhí)行305。303:設(shè)備驅(qū)動程序進(jìn)行I/0操作,當(dāng)執(zhí)行完I/0操作后,設(shè)備驅(qū)動程序馬上釋放管腳, 設(shè)備驅(qū)動程序接著執(zhí)行后面的操作,然后結(jié)束。304:設(shè)備驅(qū)動程序向應(yīng)用程序返回調(diào)用設(shè)備驅(qū)動程序失敗的結(jié)果,并由應(yīng)用程序決定后續(xù)的操作,然后結(jié)束。305:設(shè)備驅(qū)動程序釋放設(shè)備,然后設(shè)備驅(qū)動程序向應(yīng)用程序返回調(diào)用設(shè)備驅(qū)動程序失敗的結(jié)果,并由應(yīng)用程序決定是否繼續(xù)申請管腳和后續(xù)操作,然后結(jié)束。比如復(fù)用管腳型設(shè)備ISA (Industry Standard Architecture,工業(yè)標(biāo)準(zhǔn)結(jié)構(gòu))總線和復(fù)用管 腳型設(shè)備ATA (Advanced Technology Attachment,高級技術(shù)連接)接口的管腳復(fù)用時,對應(yīng) 的ISA總線和ATA接口,在設(shè)備驅(qū)動程序被應(yīng)用程序調(diào)用時,先申請?jiān)O(shè)備,還不用申請管腳, 而是到執(zhí)行I/O操作時才申請管腳,當(dāng)執(zhí)行完I/O操作后馬上釋放管腳。另外,當(dāng)設(shè)備驅(qū)動 程序中有多個I/O操作時,可以重復(fù)進(jìn)行申請管腳及釋放管腳的操作。上述方法通過申請和設(shè)置管腳,用完后釋放管腳,實(shí)現(xiàn)了動態(tài)地分配管腳,與現(xiàn)有技術(shù) 相比提高了軟件設(shè)計(jì)的獨(dú)立性,完善了系統(tǒng)軟件開發(fā)的模塊化,而且開發(fā)效率高,不容易出 錯;另外,提高了管腳使用的靈活性,使管腳得到了最大限度的利用,復(fù)用性好,降低了硬 件設(shè)計(jì)的復(fù)雜度和產(chǎn)品成本。與實(shí)施例1的區(qū)別在于,還提供了另外一種申請和釋放管腳的 方法,即在設(shè)備驅(qū)動程序被應(yīng)用程序調(diào)用時尚未申請管腳,而是執(zhí)行到I/O操作時才申請管 腳,當(dāng)執(zhí)行完I/O操作后馬上釋放管腳。采用這種方法減少了管腳被占用的時間,擴(kuò)展了管 腳的應(yīng)用空間,簡單方便,操作更靈活。實(shí)施例3參見圖4,本發(fā)明實(shí)施例還提供了一種管腳分配的裝置,具體包括 初始化模塊l,用于初始化管腳;管腳分配模塊2,用于所述初始化模塊把管腳初始化后,在系統(tǒng)的應(yīng)用程序調(diào)用設(shè)備驅(qū) 動程序期間,根據(jù)所述設(shè)備類型,進(jìn)行所述管腳的分配。進(jìn)一步地,所述設(shè)備為獨(dú)占管腳型設(shè)備時,所述管腳分配模塊2具體包括第一管腳申請單元3,用于所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備所需要的所述管 腳,所述系統(tǒng)査詢所述管腳的狀態(tài),根據(jù)所述管腳的狀態(tài)得到申請所述管腳結(jié)果(例如如 果管腳的狀態(tài)是忙或禁止使用,則得到的結(jié)果為申請失?。蝗绻苣_的狀態(tài)是空閑,則得到 的結(jié)果為申請成功),所述系統(tǒng)把申請所述管腳結(jié)果返回給所述設(shè)備驅(qū)動程序,所述設(shè)備驅(qū)動 程序根據(jù)所述系統(tǒng)返回的申請所述管腳結(jié)果,判斷所述管腳是否申請成功,如果是,則所述 設(shè)備驅(qū)動程序把申請到的所述管腳設(shè)置成所述設(shè)備需要的工作模式;第一設(shè)備申請單元4,用于所述第一管腳申請單元把申請到的所述管腳設(shè)置成所述設(shè)備 需要的工作模式后,所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備,所述系統(tǒng)返回申請所述設(shè) 備結(jié)果,所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述設(shè)備結(jié)果,判斷所述設(shè)備是否申請 成功,如果是,則打開所述設(shè)備。進(jìn)一步地,所述設(shè)備為復(fù)用管腳型設(shè)備時,所述管腳分配模塊2具體包括第二設(shè)備申請單元5,用于所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備,所述系統(tǒng)返回 申請所述設(shè)備結(jié)果,所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述設(shè)備結(jié)果,判斷所述設(shè) 備是否申請成功,如果是,則打開所述設(shè)備;第二管腳申請單元6,用于當(dāng)所述第二設(shè)備申請單元打開所述設(shè)備后,所述設(shè)備驅(qū)動程 序執(zhí)行到I/O操作時,所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備所需要的所述管腳,所述 系統(tǒng)査詢所述管腳的狀態(tài),根據(jù)所述管腳的狀態(tài)得到申請所述管腳結(jié)果(例如如果管腳的 狀態(tài)是忙或禁止使用,則得到的結(jié)果為申請失??;如果管腳的狀態(tài)是空閑,則得到的結(jié)果為 f請成功),所述系統(tǒng)把申請所述管腳結(jié)果返回給所述設(shè)備驅(qū)動程序,所述設(shè)備驅(qū)動程序根據(jù) 所述系統(tǒng)返回的申請所述管腳結(jié)果,判斷所述管腳是否申請成功,如果是,則所述設(shè)備驅(qū)動 程序把申請到的所述管腳設(shè)置成所述設(shè)備需要的工作模式,然后執(zhí)行所述I/O操作。進(jìn)一步地,所述設(shè)備為獨(dú)占管腳型設(shè)備時,所述管腳分配模塊2還包括第一管腳處理單元7,用于當(dāng)所述第一管腳申請單元判斷所述管腳申請失敗時,所述設(shè) 備驅(qū)動程序向所述應(yīng)用程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定 是否繼續(xù)申請所述管腳和后續(xù)操作;第一設(shè)備處理單元8,用于當(dāng)所述第一管腳申請單元判斷所述管腳申請成功,第一設(shè)備申 譚單元判斷所述設(shè)備申請失敗時,所述設(shè)備驅(qū)動程序釋放所述管腳,然后向所述應(yīng)用程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定后續(xù)操作。進(jìn)一步地,所述設(shè)備為復(fù)用管腳型設(shè)備時,所述管腳分配模塊2還包括 第二設(shè)備處理單元9,用于當(dāng)所述第二設(shè)備申請單元判斷所述設(shè)備申請失敗時,所述設(shè)備驅(qū)動程序向所述應(yīng)用程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定 后續(xù)操作;第二管腳處理單元IO,用于當(dāng)所述第二設(shè)備申請單元判斷所述設(shè)備申請成功,第二管腳 申請單元判斷所述管腳申請失敗時,所述設(shè)備驅(qū)動程序釋放所述設(shè)備,然后所述設(shè)備驅(qū)動程 序向所述應(yīng)用程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定是否繼續(xù) 申請所述管腳和后續(xù)操作。進(jìn)一步地,所述設(shè)備為獨(dú)占管腳型設(shè)備時,所述管腳分配模塊2還包括判斷單元ll,用于所述應(yīng)用程序判斷所述應(yīng)用程序所需的所述設(shè)備是否都成功打開,如 果是,則所述應(yīng)用程序開始運(yùn)行,否則,所述設(shè)備驅(qū)動程序釋放所述設(shè)備,然后釋放所述管 腳,返回所述設(shè)備打開失敗的結(jié)果;第一管腳釋放單元12,用于當(dāng)所述應(yīng)用程序運(yùn)行完畢后,釋放所述設(shè)備,然后釋放所述 管腳。進(jìn)一步地,所述設(shè)備為復(fù)用管腳型設(shè)備時,所述管腳分配模塊2還包括第二管腳釋放單元13,用于當(dāng)所述設(shè)備驅(qū)動程序執(zhí)行完所述I/0操作后,所述設(shè)備驅(qū)動程序馬上釋放所述管腳。圖4所示的裝置,通過申請和設(shè)置管腳,用完后釋放管腳,實(shí)現(xiàn)了動態(tài)地分配管腳,與 現(xiàn)有技術(shù)相比提高了軟件設(shè)計(jì)的獨(dú)立性,完善了系統(tǒng)軟件開發(fā)的模塊化,而且開發(fā)效率高, 不容易出錯;另外,提高了管腳使用的靈活性,使管腳得到了最大限度的利用,復(fù)用性好, 降低了硬件設(shè)計(jì)的復(fù)雜度和產(chǎn)品成本。以上實(shí)施例提供的技術(shù)方案中的全部或部分內(nèi)容可以通過軟件編程實(shí)現(xiàn),其軟件程序存 儲在可讀取的存儲介質(zhì)中,存儲介質(zhì)例如計(jì)算機(jī)中的硬盤、光盤或軟盤。以上所述僅為本發(fā)明的較佳實(shí)施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之 內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1. 一種管腳分配的方法,其特征在于,所述方法包括初始化管腳;在系統(tǒng)的應(yīng)用程序調(diào)用設(shè)備驅(qū)動程序期間,根據(jù)設(shè)備的類型,進(jìn)行所述管腳的分配。
2. 根據(jù)權(quán)利要求1所述的管腳分配的方法,其特征在于,所述設(shè)備為獨(dú)占管腳型設(shè)備時, 所述進(jìn)行所述管腳的分配具體為所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備所需要的所述管腳,所述系統(tǒng)査詢所述管腳 的狀態(tài),根據(jù)所述管腳的狀態(tài)得到申請所述管腳結(jié)果,所述系統(tǒng)把申請所述管腳結(jié)果返回給 所述設(shè)備驅(qū)動程序,所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述管腳結(jié)果,判斷所述管 腳是否中請成功,如果是,則所述設(shè)備驅(qū)動程序把申請到的所述管腳設(shè)置成所述設(shè)備需要的 工作模式;然后所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備,所述系統(tǒng)返回申請所述設(shè)備結(jié)果,所 述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述設(shè)備結(jié)果,判斷所述設(shè)備是否申請成功,如果 是,則打開所述設(shè)備。
3. 根據(jù)權(quán)利要求1所述的管腳分配的方法,其特征在于,所述設(shè)備為復(fù)用管腳型設(shè) 備時,所述進(jìn)行所述管腳的分配具體為所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備,所述系統(tǒng)返回申請所述設(shè)備結(jié)果,所述設(shè) 備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述設(shè)備結(jié)果,判斷所述設(shè)備是否申請成功,如果是,則打開所述設(shè)備;然后當(dāng)所述設(shè)備驅(qū)動程序執(zhí)行到I/O操作時,所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè) 備所需要的所述管腳,所述系統(tǒng)查詢所述管腳的狀態(tài),根據(jù)所述管腳的狀態(tài)得到申請所述管 腳結(jié)果,所述系統(tǒng)把申請所述管腳結(jié)果返回給所述設(shè)備驅(qū)動程序,所述設(shè)備驅(qū)動程序根據(jù)所 述系統(tǒng)返回的申請所述管腳結(jié)果,判斷所述管腳是否申請成功,如果是,則所述設(shè)備驅(qū)動程 序把申請到的所述管腳設(shè)置成所述設(shè)備需要的工作模式,然后執(zhí)行所述I/O操作。
4. 根據(jù)權(quán)利要求2所述的管腳分配的方法,其特征在于,所述設(shè)備為獨(dú)占管腳型設(shè)備時, 所述進(jìn)行所述管腳的還包括當(dāng)所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述管腳結(jié)果,判斷所述管腳申請失敗時, 所述設(shè)備驅(qū)動程序向所述應(yīng)用程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程 序決定是否繼續(xù)申請所述管腳和后續(xù)操作;當(dāng)所述管腳申請成功,所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述設(shè)備結(jié)果,判斷 所述設(shè)備申請失敗吋,所述設(shè)備驅(qū)動程序釋放所述管腳,然后向所述應(yīng)用程序返回調(diào)用所述 設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定后續(xù)操作。
5. 根據(jù)權(quán)利要求3所述的管腳分配的方法,其特征在于,所述設(shè)備為復(fù)用管腳型設(shè)備時, 所述進(jìn)行所述管腳的分配還包括當(dāng)所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述設(shè)備結(jié)果,判斷所述設(shè)備申請失敗時, 所述設(shè)備驅(qū)動程序向所述應(yīng)用程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程 序決定后續(xù)操作;當(dāng)所述設(shè)備申請成功,所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述管腳結(jié)果,判斷 所述管腳申請失敗時,所述設(shè)備驅(qū)動程序釋放所述設(shè)備,然后所述設(shè)備驅(qū)動程序向所述應(yīng)用 程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定是否繼續(xù)申請所述管腳 和后續(xù)操作。
6. 根據(jù)權(quán)利要求2所述的管腳分配的方法,其特征在于,所述設(shè)備為獨(dú)占管腳型設(shè)備時, 所述進(jìn)行所述管腳的分配之后還包括所述應(yīng)用程序判斷所述應(yīng)用程序所需的所述設(shè)備是否都成功打丌,如果是,則所述應(yīng)用 程序開始運(yùn)行,否則,所述設(shè)備驅(qū)動程序釋放所述設(shè)備,然后釋放所述管腳,返回所述設(shè)備 打開失敗的結(jié)果;當(dāng)所述應(yīng)用程序運(yùn)行完畢后,釋放所述設(shè)備,然后釋放所述管腳。
7. 根據(jù)權(quán)利要求3所述的管腳分配的方法,其特征在于,所述設(shè)備為復(fù)用管腳型設(shè)備時, 所述進(jìn)行所述管腳的分配之后還包括當(dāng)所述設(shè)備驅(qū)動程序執(zhí)行完所述I/O操作后,所述設(shè)備驅(qū)動程序馬上釋放所述管腳。
8. -種管腳分配的裝置,其特征在于,所述裝置包括 初始化模塊(l),用于初始化管腳;管腳分配模塊(2),用于所述初始化模塊把管腳初始化后,在系統(tǒng)的應(yīng)用程序調(diào)用設(shè)備 驅(qū)動程序期間,根據(jù)所述設(shè)備類型,進(jìn)行所述管腳的分配。
9.根據(jù)權(quán)利要求8所述的管腳分配的裝置,其特征在于,所述設(shè)備為獨(dú)占管腳型設(shè)備 時,所述管腳分配模塊具體包括第一管腳申請單元(3),用于所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備所需要的所述管 腳,所述系統(tǒng)查詢所述管腳的狀態(tài),根據(jù)所述管腳的狀態(tài)得到申請所述管腳結(jié)果,所述系統(tǒng) 把申請所述管腳結(jié)果返回給所述設(shè)備驅(qū)動程序,所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請 所述管腳結(jié)果,判斷所述管腳是否申請成功,如果是,則所述設(shè)備驅(qū)動程序把申請到的所述 管腳設(shè)置成所述設(shè)備需要的工作模式;第設(shè)備申請單元(4),用于所述第一管腳申請單元把申請到的所述管腳設(shè)置成所述設(shè)備 需要的工作模式后,所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備,所述系統(tǒng)返回申請所述設(shè) 備結(jié)果,所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述設(shè)備結(jié)果,判斷所述設(shè)備是否申請 成功,如果是,則打開所述設(shè)備。
10. 根據(jù)權(quán)利要求8所述的管腳分配的裝置,其特征在于,所述設(shè)備為復(fù)用管腳型設(shè)備 時,所述管腳分配模塊具體包括第二設(shè)備申請單元(5),用于所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備,所述系統(tǒng)返回 申請所述設(shè)備結(jié)果,所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述設(shè)備結(jié)果,判斷所述設(shè) 備是否申請成功,如果是,則打開所述設(shè)備;第二管腳申請單元(6),用于當(dāng)所述第二設(shè)備申請單元打開所述設(shè)備后,所述設(shè)備驅(qū)動程 序執(zhí)行到I/O操作時,所述設(shè)備驅(qū)動程序向所述系統(tǒng)申請所述設(shè)備所需要的所述管腳,所述 系統(tǒng)查詢所述管腳的狀態(tài),根據(jù)所述管腳的狀態(tài)得到申請所述管腳結(jié)果,所述系統(tǒng)把申請所 述管腳結(jié)果返回給所述設(shè)備驅(qū)動程序,所述設(shè)備驅(qū)動程序根據(jù)所述系統(tǒng)返回的申請所述管腳 結(jié)果,判斷所述管腳是否申請成功,如果是,則所述設(shè)備驅(qū)動程序把申請到的所述管腳設(shè)置 成所述設(shè)備需要的工作模式,然后執(zhí)行所述I/O操作。
11. 根據(jù)權(quán)利要求9所述的管腳分配的裝置,其特征在于,所述設(shè)備為獨(dú)占管腳型設(shè)備時, 所述管腳分配模塊還包括第一管腳處理單元(7),用于當(dāng)所述第一管腳申請單元判斷所述管腳申請失敗時,所述設(shè)備驅(qū)動程序向所述應(yīng)用程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定 是否繼續(xù)申請所述管腳和后續(xù)操作;第一設(shè)備處理單元(8),用于當(dāng)所述第一管腳申請單元判斷所述管腳申請成功,第一設(shè)備 申請單元判斷所述設(shè)備申請失敗時,所述設(shè)備驅(qū)動程序釋放所述管腳,然后向所述應(yīng)用程序 返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定后續(xù)操作。
12. 根據(jù)權(quán)利要求10所述的管腳分配的裝置,其特征在于,所述設(shè)備為復(fù)用管腳型設(shè)備 時,所述管腳分配模塊還包括第二設(shè)備處理單元(9),用于當(dāng)所述第二設(shè)備申請單元判斷所述設(shè)備申請失敗時,所述設(shè) 備驅(qū)動程序向所述應(yīng)用程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定 后續(xù)操作;第二管腳處理單元(IO),用于當(dāng)所述第二設(shè)備申請單元判斷所述設(shè)備申請成功,第二管 腳申請單元判斷所述管腳申請失敗時,所述設(shè)備驅(qū)動程序釋放所述設(shè)備,然后所述設(shè)備驅(qū)動 程序向所述應(yīng)用程序返回調(diào)用所述設(shè)備驅(qū)動程序失敗的結(jié)果,并由所述應(yīng)用程序決定是否繼 續(xù)申請所述管腳和后續(xù)操作。
13. 根據(jù)權(quán)利要求9所述的管腳分配的裝置,其特征在于,所述設(shè)備為獨(dú)占管腳型設(shè)備 時,所述管腳分配模塊還包括判斷單元(ll),用于所述應(yīng)用程序判斷所述應(yīng)用程序所需的所述設(shè)備是否都成功打開,如 果是,則所述應(yīng)用程序開始運(yùn)行,否則,所述設(shè)備驅(qū)動程序釋放所述設(shè)備,然后釋放所述管 腳,返回所述設(shè)備打開失敗的結(jié)果;第一管腳釋放單元(12),用于當(dāng)所述應(yīng)用程序運(yùn)行完畢后,釋放所述設(shè)備,然后釋放所 述管腳。
14. 根據(jù)權(quán)利要求10所述的管腳分配的裝置,其特征在于,所述設(shè)備為復(fù)用管腳型設(shè)備 時,所述管腳分配模塊還包括第二管腳釋放單元(13),用于當(dāng)所述設(shè)備驅(qū)動程序執(zhí)行完所述I/0操作后,所述設(shè)備驅(qū)動 程序馬上釋放所述管腳。
全文摘要
本發(fā)明公開了一種管腳分配的方法和裝置,屬于計(jì)算機(jī)通信領(lǐng)域。所述方法包括初始化管腳;在系統(tǒng)的應(yīng)用程序調(diào)用設(shè)備驅(qū)動程序期間,根據(jù)設(shè)備的類型,進(jìn)行所述管腳的分配。所述裝置包括初始化模塊1和管腳分配模塊2。本發(fā)明通過申請和設(shè)置管腳,用完后釋放管腳,實(shí)現(xiàn)了動態(tài)地分配管腳,與現(xiàn)有技術(shù)相比提高了軟件設(shè)計(jì)的獨(dú)立性,完善了系統(tǒng)軟件開發(fā)的模塊化,而且開發(fā)效率高,不容易出錯;另外,提高了管腳使用的靈活性,使管腳得到了最大限度的利用,復(fù)用性好,降低了硬件設(shè)計(jì)的復(fù)雜度和產(chǎn)品成本。
文檔編號G06F9/445GK101281473SQ20081010545
公開日2008年10月8日 申請日期2008年4月29日 優(yōu)先權(quán)日2008年4月29日
發(fā)明者舸 楊 申請人:紐海信息技術(shù)(上海)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1