大部分嵌入式硬件都需要某種類(lèi)型的軟件進(jìn)行初始化和管理。直接與一個(gè)硬件互相作用并控制這一硬件的軟件稱為設(shè)備驅(qū)動(dòng)程序陶舞。所有需要軟件的嵌入式系統(tǒng)库说,在它們的系統(tǒng)軟件層都需要設(shè)備驅(qū)動(dòng)程序軟件款侵。設(shè)備驅(qū)動(dòng)程序是初始化硬件的軟件庫(kù),它們管理著高層軟件對(duì)硬件的訪問(wèn)嚎卫,它是硬件與操作系統(tǒng)、中間件和應(yīng)用層之間聯(lián)絡(luò)的紐帶宏榕。具體來(lái)說(shuō)拓诸,這類(lèi)驅(qū)動(dòng)程序包括主處理器體系結(jié)構(gòu)專用的功能性驅(qū)動(dòng)程序、存儲(chǔ)器和存儲(chǔ)器管理驅(qū)動(dòng)程序担扑、總線初始化和事務(wù)驅(qū)動(dòng)程序恰响、還有電路板層和主CPU層次的I/O初始化和控制驅(qū)動(dòng)程序(如用于網(wǎng)絡(luò)、圖形涌献、輸入設(shè)備胚宦、存儲(chǔ)設(shè)備、調(diào)試I/O等)燕垃。
設(shè)備驅(qū)動(dòng)程序通常劃分為體系結(jié)構(gòu)專用設(shè)備驅(qū)動(dòng)程序和通用設(shè)備驅(qū)動(dòng)程序枢劝。體系結(jié)構(gòu)專用設(shè)備驅(qū)動(dòng)程序管理嵌入到主處理器(體系結(jié)構(gòu))中的硬件。體系結(jié)構(gòu)專用驅(qū)動(dòng)程序負(fù)責(zé)初始化主處理器內(nèi)部的組件卜壕,這類(lèi)驅(qū)動(dòng)程序的具體事例包括片上存儲(chǔ)器您旁、集成的存儲(chǔ)器管理器和浮點(diǎn)硬件的驅(qū)動(dòng)程序。通用設(shè)備驅(qū)動(dòng)程序管理電路板上的硬件以及沒(méi)有集成到主處理器中的硬件轴捎。在一個(gè)通用設(shè)備驅(qū)動(dòng)程序中鹤盒,通常包含一部分體系結(jié)構(gòu)專用的源代碼,因?yàn)橹魈幚砥魇侵醒肟刂茊卧旄保L問(wèn)電路板上的任何組件通常都要經(jīng)過(guò)主處理器侦锯。然而,通用驅(qū)動(dòng)程序也可以管理不被特定的處理器所專用的板級(jí)硬件秦驯,這就意味著一個(gè)通用驅(qū)動(dòng)程序可以配置應(yīng)用到許多體系結(jié)構(gòu)中去尺碰,只要該結(jié)構(gòu)中包含該驅(qū)動(dòng)程序?qū)?yīng)的硬件。通用驅(qū)動(dòng)程序包含初始化和管理對(duì)電路板上剩余主要組件進(jìn)行訪問(wèn)的代碼译隘,這些主要組件包括板級(jí)總線亲桥、片外存儲(chǔ)器(控制器、2級(jí)以上高速緩存固耘、閃存等)和片外I/O(以太網(wǎng)题篷、顯示器、鼠標(biāo)等)厅目。