一、引入抽象层
抽象层有很多种,比如硬件抽象层(HAL)、设备抽象层(DAL),操作系统抽象层(OSAL),网络抽象层,文件系统抽象层,Flash抽象层(RT-Thread里就有这个)等等。对谁进行抽象,就会建立这个东西的抽象层,无一定之规。
二、抽象层的作用
抽象层的创建,将允许将应用代码从一个微控制器移动到下一个微控制器,或者一套硬件迁移到另一套硬件,应用层代码不必更换。
抽象层打破了硬件依赖关系;换句话说,应用程序根本不必知道,也不必关心,当前运行的是什么硬件,应用程序只需要关心抽象层的API是什么样的。新的硬件驱动程序要做的,仅仅是满足接口的要求而已。
这意味着如果我们更改硬件,则只会更改硬件相关的模块(驱动代码),而不是整个代码库。