大部分嵌入式硬件都需要某种类型的软件进行初始化和管理。直接与一个硬件互相作用并控制这一硬件的软件称为设备驱动程序。所有需要软件的嵌入式系统,在它们的系统软件层都需要设备驱动程序软件。设备驱动程序是初始化硬件的软件库,它们管理着高层软件对硬件的访问,它是硬件与操作系统、中间件和应用层之间联络的纽带。具体来说,这类驱动程序包括主处理器体系结构专用的功能性驱动程序、存储器和存储器管理驱动程序、总线初始化和事务驱动程序、还有电路板层和主CPU层次的I/O初始化和控制驱动程序(如用于网络、图形、输入设备、存储设备、调试I/O等)。
设备驱动程序通常划分为体系结构专用设备驱动程序和通用设备驱动程序。体系结构专用设备驱动程序管理嵌入到主处理器(体系结构)中的硬件。体系结构专用驱动程序负责初始化主处理器内部的组件,这类驱动程序的具体事例包括片上存储器、集成的存储器管理器和浮点硬件的驱动程序。通用设备驱动程序管理电路板上的硬件以及没有集成到主处理器中的硬件。在一个通用设备驱动程序中,通常包含一部分体系结构专用的源代码,因为主处理器是中央控制单元,要访问电路板上的任何组件通常都要经过主处理器。然而,通用驱动程序也可以管理不被特定的处理器所专用的板级硬件,这就意味着一个通用驱动程序可以配置应用到许多体系结构中去,只要该结构中包含该驱动程序对应的硬件。通用驱动程序包含初始化和管理对电路板上剩余主要组件进行访问的代码,这些主要组件包括板级总线、片外存储器(控制器、2级以上高速缓存、闪存等)和片外I/O(以太网、显示器、鼠标等)。