在嵌入式產品的設計、開發過程中,首先需要硬件的支持,絕大多數的嵌入式硬件都需某種類型的軟件來初始化和管理,該類軟件直接與硬件相接口并控制著硬件,以便很好的與硬件相協同,完成相關功能。總而言之,驅動程序是初始化硬件的軟件庫,管理來自上層軟件對硬件的訪問。是硬件和操作系統、中間件和應用層之間的連接關鍵。在嵌入軟件開發中有著不可替代的地位。
首先一點,驅動程序是由程序設計人員設計開發,由于存在多方面的問題,驅動程序的開發面臨許多挑戰。具體挑戰如下:
(1)市面上硬件類型很多,不同類型的硬件有著不同的設備驅動需求。使得驅動程序開發需求較多,加上驅動程序開發的繁瑣、復雜性,給開發人員增加了開發難度。
(2)設備驅動程序通常被認為是面向特定體系結構,要不它就是通用的。在這一點上,開發的驅動代碼不可能完全相同,針對不同的體系結構,不同的板載硬件,都需要進行相關的配置或者增減部分代碼,才能使驅動程序適用于具體環境。加上硬件的多樣性,使得驅動開發人員需要編寫設計更多的代碼來進行功能完善,才能在特定的環境下使用驅動程序。