京东|嵌入式开发:硬件抽象层设计过程

京东|嵌入式开发:硬件抽象层设计过程

使用HAL是开发可轻松重用并从一个应用程序和平台移植到下一个应用程序和平台的软件的好方法 。 为什么嵌入式开发人员会想做这样的事情?对于初学者来说 , 一遍又一遍地重新发明轮子会很无聊 。

即使对于喜欢一遍又一遍地做同样事情的开发人员来说 , 开发时间线很短 , 预算很紧 , 而且在任何给定的项目上都需要做太多的工作 。 因此 , 目标是编写可重用的代码 , 为此 , 开发人员需要创建一个硬件抽象层 , 以允许他们的中间件和应用程序代码通用地访问微控制器硬件 。
创建坚如磐石的HAL并非一朝一夕 。 创建HAL的过程是一个迭代过程 , 很可能需要数年时间 。 好消息是开发人员可以非常快速地创建HAL , 然后随着每个项目的调整和修改 , 直到遇到几乎所有可以想象的排列 。 我们将介绍HAL创建过程 , 但在此之前 , 让我们先看看每个HAL需要具备的特性 。
一个好的HAL的特征:
人类可读
抽象的复杂性
有据可查
便携的
【京东|嵌入式开发:硬件抽象层设计过程】通用控制能力
可扩展的特定控制能力
封装数据
可重复使用的
可维护
硬件抽象层应该包含一组基本的函数来控制人类可读和通用的底层外围设备 。 界面应该很简单 , 包含不到十几个功能 。 界面变得越复杂 , 界面就越难以理解、移植和简单地使用 。 嵌入式开发人员应该只公开界面的需要知道的信息 , 并允许将所有细节隐藏在界面后面 。 使用HAL的开发人员不需要成为底层硬件和复杂性方面的专家 , 只需了解如何使用接口即可!

HAL设计过程
设计硬件抽象层是一个相对直接的过程 , 对于每个微控制器外围设备可能会针对不同的架构重复多次 。 一般过程包含七个步骤:
查看微控制器外设数据表
识别外围功能
设计和创建界面
创建存根和文档模板
为目标处理器实施
测试
对每个外围设备重复
在本章中 , 我们介绍了设计硬件抽象层的通用过程 , 这个过程虽然看起来很简单 , 但在变得完全清晰之前可能需要嵌入式开发人员执行几次 。