嵌入式软件架构与可移植固件开发指南
1. 分层软件架构选择
在开发分层软件架构时,存在许多正式的模型,像著名的 OSI 模型就包含七层以上。开发者应根据自身需求、可移植性和复用需求,挑选能满足要求的最简单架构。比如,若三层架构就能满足需求,就别构建三十层的软件架构。目标是避免编写复杂如意大利面般相互交织的代码,而是开发像千层面一样层次分明的代码。
2. 硬件抽象层(HAL)
每个软件层至少有一个与相邻软件层的接口,接口的名称由下一层的软件类型决定。若各层开发得当,对开发者而言就像一个黑盒,只有接口规范能让人了解如何实现所需的行为和结果。接口具有诸多好处:
- 提供一致的功能访问方法。
- 抽象底层代码的工作细节。
- 为如何将不一致的代码合并到软件层指定包装接口。
硬件抽象层(HAL)是开发者如今能利用的有趣固件层。它为应用开发者提供标准函数集,使其无需深入了解硬件工作原理就能访问硬件功能。HAL 本质上是用于与硬件交互的 API,设计良好的 HAL 能带来诸多益处:
| 优点 | 说明 |
| ---- | ---- |
| 可移植性 | 软件能在不同环境中使用 |
| 可复用性 | 代码可重复利用 |
| 低成本 | 复用带来成本降低 |
| 抽象性 | 无需了解微控制器具体工作方式 |
| 少 bug | 重复使用减少错误 |
| 可扩展性 | 能在同系列微控制器中迁移 |
不过,设计不佳的 HAL 会导致成本增加和软件出现 bug。
软件术语方面:
- 驱动层:包含低级别、特定于微控制器的软
超级会员免费看
订阅专栏 解锁全文
31

被折叠的 条评论
为什么被折叠?



