嵌入式系统开发平台硬件抽象层的研究与设计
2021-03-16俞学波
俞学波
摘 要:由于嵌入式系统的特殊和复杂性,在实际使用的过程中会遇到很多问题。在嵌入式系统开发平台的构建中,如果硬件环境出现了差异会引发很多问題。本文就嵌入式系统开发平台硬件抽象层进行研究和设计,为硬件抽象层设计提供有效的实现方法。
关键词:嵌入式系统开发平台; 硬件抽象层; 设计和研究
嵌入式系统开发平台在对产品周期的缩短以及资源利用率问题上提供了有效的解决方案。 然而, 这种平台因为较强的专用性和体积较小的缺点使得系统平台中说应用的硬件环境存在很大的差异。 在实际运用中怎样对设计开发平台进行合理的开发使其适用于不同的应用环境这是重点。
一、嵌入式系统设计
由于嵌入式系统有着体积小、功能集中、可靠性高等优点,已被广泛地应用到日常生活的各个方面,如移动通信、工业控制、医疗器械,家用电器等。如何缩短嵌入式系统的开发周期,降低开发成本,以及提高产品的可靠性已成为嵌入式行业普遍关注的问题。在嵌入式系统设计中,通常采用以下设计方法。
1.瀑布模式开发过程
瀑布模式开发过程工作模式简单,任务的划分协调及人员安排、物质材料的分配管理都比较容易。开发过程为从硬件到软件的流水线式进行。
2.V模式开发过程
V模式开发过程为一种并行的工作方式,任务的划分协调及人员安排、物质材料的分配都必须考虑不同工作内容,开发过程为硬件和软件同时进行,最后联合调试。
二、基于硬件抽象层的系统软件设计特性
1.包含硬件抽象层的系统结构
硬件抽象层完全把系统软件和硬件部分隔离开来,这样就使得系统的设备驱动程序与硬件设备无关,从而大大提高了系统的可移植性。从软硬件测试角度来看,软硬件的测试工作都可分别基于硬件抽象层来完成,使得软硬件的测试工作的并行进行成为可能。在抽象层的定义方面,需要规定统一的软硬件接口标准,其设计工作需要基于系统需求来做,代码工作可由对硬件比较熟悉的人员来完成。抽象层一般应包含相关硬件的初始化、数据的输入/输出操作、硬件设备的配置操作等功能。
2.包含硬件抽象层的系统开发过程
硬件抽象层V模式开发过程,在系统需求分析并定义了软硬件各自的设计要求以后,就需要花费一定的时间来定义硬件抽象层的接口,以确保硬件设计和测试与软件设计和测试工作能够在相同的接口上进行,从而有利于最终的软硬件集成测试。在基于硬件抽象层的V模式开发过程,软硬件的设计和调试具有无关性,并可完全地并行进行。硬件的错误不会影响到系统软件的调试,同样软件设计的错误也不会影响硬件的调试工作,这样就可大大缩短系统的测试周期和提高系统的可靠性。
2.1通用层
通用层是以c语言编写的、不涉及体系结构及外围端口寄存器具体操作的、能够通用于各种硬件平台的一层。通用层内包括: 对统一的与编译器无关的数据类型、抽象设备的数据结构定义,以及提供给嵌入式操作系统内核的对抽象设备的各种统一的操作服务的接口通用的实现部分。通用层中抽象设备操作的实现中需要涉及的对cpu内核寄存器的操作以及对外围i/o端口寄存器的操作,是通过调用体系结构层以及外围层中统一定义的接口进行的。当扩展或移植到其他硬件平台上时,上层无须修改,而只须进行下层替换。
2.2体系结构层
针对各种嵌入式微处理器cpu内核的体系结构,体系结构层需要分别设计实现。体系结构层中对体系结构相关的数据类型以及数据结构进行定义,包括寄存器上下文保存格式的定义以及对中断异常向量起始地址、各种异常和中断处理的入口偏移等,并负责通用硬件抽象层功能中体系结构相关部分的实现。实现的内容主要是对cpu内核中各个寄存器的访问,对于中断异常向量表的操作以及底层的中断和异常处理。体系结构层的实现是按照上层规定的调用接口来进行的,因而针对不同的体系结构,上层通用层无须进行修改。体系结构层中对有关i/o端口寄存器的操作通过对外围层接口的调用来实现。针对某种体系结构设计实现的体系结构层能够通用于cpu内核体系结构兼容的嵌入式微处理器的硬件平台上,从而易于硬件抽象层在体系结构兼容的嵌入式微处理器硬件平台上的扩展和移植。
2.3外围层
外围层是针对各种嵌入式微处理器而分别设计实现的。外围层主要包括对外围i/o接口和设备属性的定义(包括中断控制器连接的外设个数、定时器个数等),并且负责对各个外围i/o设备端口寄存器的访问操作。外围层的实现需要根据上层定义的接口进行。
2.4层次间接口的设计
通用硬件抽象层除了为嵌入式操作系统内核提供统一的功能服务接口外,为了便于扩展和移植到其他硬件平台,还在各层的调用之间设计了统一的调用接口。下层的功能实现需要按照与上层确定的接口规范来进行。其中某些上下层之间的接口,尤其是外围层与上层之间的接口是使用宏定义的方式进行的。宏定义在预编译时进行替换,没有执行时的性能损失。相反,对于底层的操作直接使用宏定义能够提高执行效率,尤其对外围端口寄存器的操作,由于操作本身的执行时间短,而一般函数调用则需要返回地址、参数压栈等过程。这些开销可能超过这些i/o端口寄存器的访问时间,使用宏定义则没有调用开销,从而能够直接实现接口对底层端口寄存器的访问而不损失操作的效率。
3.硬件抽象层的特点
硬件抽象层接口的定义和代码设计应具有以下特点: 硬件抽象层具有与硬件密切相关性; 硬件抽象层具有与操作系统无关性; 接口定义的功能应包含硬件或系统所需硬件支持的所有功能; 接口定义简单明了,太多接口函数会增加软件模拟的复杂性;具有可测性的接口设计有利于系统的软硬件测试和集成。
结束语
通过论文的研究可以看出目前,对嵌入式系统中的硬件抽象层地设计进行了分析,为其作为嵌入式系统平台的一部分层次的提高做了实现的准备。通过对其设计和研究的分析,为硬件抽象层在嵌入式系统平台中的应用及推广做准备。最后,希望论文的研究为相关的工.作者及研究人员提供一定的借鉴与参考价值。
参考文献
[1]李艳.嵌入式系统的构成与设计研究[J].数字化用户,2019,025(007):33.
1577500520323