硬件抽象层设计过程

使用HAL是开发可轻松重用并从一个应用程序和平台移植到另一应用程序和平台的软件的好方法。开发人员为什么要做这样的事情?对于初学者来说,一遍又一遍地重新发明轮子会很无聊。我相信大多数开发人员都希望从事最前沿的开发工作,而不是陷入无休止的“土拨鼠日”1 循环。即使对于喜欢一遍又一遍地重复做同一件事的开发人员,开发时间也很短,预算也很紧张,而且在任何给定项目上都需要做太多的工作。因此,目标是编写可重用的代码,并且为此,开发人员需要创建硬件抽象层,以允许其中间件和应用程序代码通用地访问微控制器硬件。

创建坚如磐石的HAL并非一朝一夕。创建HAL的过程是一个迭代过程,并且可能要花费数年的时间。好消息是,开发人员可以非常快速地创建HAL,然后在每个项目中进行调整和修改,直到遇到几乎所有可能的排列。我们将逐步完成HAL的创建过程,但在进行此操作之前,让我们看一下每个HAL需要具备的特征。 (请记住,本书研究了一个HAL,该HAL可以激发开发人员对HAL的需求。无需花很多时间进行调整,本书的读者将能够根据过程和随附材料非常迅速地完成此工作)。

良好的HAL’s Characteristics

到目前为止,在本书中,我们已经讨论了便携式和可重用软件应展现的几个特征。一个经过精心设计和深思熟虑的HAL会表现出这些特性,但此时应注意一些特征。我们将要设计一个硬件抽象层,而不是设计在接口后面运行的代码,而是实际的接口本身。良好的HAL将包含以下特征:

  • 可读
  • 抽象的复杂性
  • 有据可查
  • 随身携带
  • 通用控制能力
  • 可扩展的特定控制功能
  • 封装数据
  • 可重用
  • 可维护的

硬件抽象层应包含一组基本功能,以控制易于理解和通用的底层外围设备。该界面应该简单,并且包含少于十二个功能。接口变得越复杂,就越难理解,移植和简单使用接口。开发人员应仅公开该接口的需要了解的信息,并允许将所有详细信息隐藏在该接口后面。使用HAL的开发人员不必是基础硬件和复杂性方面的专家,而只需是如何使用该界面的专家!

HAL设计流程

设计硬件抽象层是一个相对简单的过程,对于每个微控制器外围设备,对于不同的体系结构可能会重复多次。一般过程包含七个步骤:

  1. 查看微控制器外设数据表
  2. 识别外围功能
  3. 设计和创建界面
  4. 创建存根和文档模板
  5. 为目标处理器实施
  6. 测试
  7. 对每个外围设备重复

该过程虽然看似很简单,但可能需要执行几次才能完全清楚。在本章中,我们将逐步介绍用于设计硬件抽象层的通用过程,然后在后续各章中,将针对特定的外围设备和外部组件再次进行该过程。

雅各布’的本周专家提示

要掌握您的硬件抽象层并最大程度地提高代码重用性,请阅读我的书,以了解有关如何为实时系统设计HAL的更多信息“可重用固件开发“。 (我知道一个自私的插件,但如果我不知道,’t do it who will?)

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.