|
知识路径: > 嵌入式系统软件基础知识 > 嵌入式系统程序设计 > 嵌入式软件开发过程 > 嵌入式软件设计 > 特性设计技术 > 可扩展性的设计 >
|
相关知识点:3个
|
|
|
|
嵌入式领域软件开发时,常常需要开发大量的硬件设备驱动软件,包括各类处理器的驱动、各类外部设备的驱动软件。由于驱动软件需要与硬件进行深度结合,并且部分是采用汇编语言实现,如果没有合理硬件驱动管理机制的支持,很难做到软件在不同硬件平台上的迁移与扩展。
|
|
|
类似于Windows系统的硬件设备驱动,在嵌入式系统的软件开发中引入了硬件驱动层,对系统运行的各类设备驱动进行封装。上层的系统软件通过标准的接口进行访问,实现系统软件与硬件的隔离,降低系统软件的开发难度,缩短了开发时间。硬件驱动层包括CPU片内资源的硬件驱动和板子上外围设备硬件的驱动,如下图所示。
|
|
|
|
|
CPU的硬件驱动通常包括寄存器、时钟、中断、异常、存储管理单元等。在系统引导过程中,要配置好各种寄存器,进行时钟、中断、异常、存储管理等部件初始化,后续系统软件则通过子程序的方式调用相关硬件驱动。
|
|
|
其他外部设备驱动通常包括串口、网口、鼠标、键盘、存储器等。在系统开发时,需要为目标机所有的外部设备逐一编写驱动程序,以供其他应用软件进行调用。例如键盘,硬件会记录每次按下的键码,放入输入键码队列中,编制的驱动程序即从键码队列中取出按下的键,根据键值的不同执行不同的操作。通过编制硬件驱动层,并通过标准的接口向上提供访问,使得上层软件的编写就与硬件无关了,只要软件之间逻辑关系正确,就不需要改动。即便是驱动程序需要移植到其他硬件上,只要硬件设计基本相同,也可以直接重用硬件驱动程序,使得整个软件方便地移植。
|
|
|