一、對設備驅動最通俗的解釋就是“驅動硬件設備行動”。設備驅動與底層硬件是直接打交道的,並按照設備硬件的具體工作方式讀寫設備寄存器進而完成一系列操作。
二、應用軟件則是不需直接跟硬件打交道的、通過調用驅動接口函數完成設備工作的程序。
三、設備驅動大體有兩類:無操作系統時和有操作系統時。
1)、無操作系統時
設備驅動充當了硬件和應用軟件之間的紐帶,它使得應用軟件只需要調用系統軟件的應用編程接口(API)就可讓硬件去完成要求的工作。設備工程師可以根據硬件設備的特點定義接口。如對串口定義SerialSend()、SerialRecv();對led定義LedOpen()、LedClose()。
2)、有操作系統時
設備驅動充當了硬件和內核之間的紐帶,設備驅動不再直接爲應用軟件提供接口,此時設備驅動需根據操作系統的架構進行設計,操作系統調用內存完成多任務併發或並行執行的同時充當了應用軟件和設備驅動之間溝通的紐帶。此時應用軟件調用統一的wirte()、read()等函數和輸入相應設備號等即可通過操作系統找到相應的設備驅動完成對設備硬件的操作。也就相當於操作系統完成多任務執行同時對設備驅動進行再封裝。