一、为什么要分层设计?
分层设计是为了剥离硬件环境的依赖,使软件系统更好复用,当更换硬件方案时,只需要修改底层函数的初始化,抽象层和服务层完全不需要改动,这样极大的减小时间成本,平台能够很快投入使用。
二、 分层设计概要
简单的OS分层设计:服务层、抽象层、系统层、HAL层。
服务层:就是实现业务功能的应用程序API,属于功能层面。
抽象层:用来隔离底层硬件而设计的层,上层只能通过这个抽象层调用底层函数,底层不能反过来调用上层,只能是单向操作,这样逻辑会比较清晰。
系统层:用来创建任务,用链表把每个任务串起来,实时运行。
HAL层:也就是底层,是面向硬件层的,如果要更换硬件方案,只需要修改对应的硬件模块即可,上层不需要动。
举个例子:
三、分支设计
框架搭建好之后,就是分支设计,分支依据单向调用原则,只能通过上层一层一层去调用到底层的函数,服务层--->抽象层--->HAL层,每一个服务层的业务功能都按照这样的规格去实现。
业务层之间有数据流交互时,对外提供数据获取接口,数据设置接口,全局变量都设置为静态全局。