有网友问:单片机小项目,有必要做分层设计吗? 这个问题,主要看项目本身,以及公司管理。小项目,是有多小?公司对项目的管理是否看重? 正规一点的公司,从长远的角度来说,很有必要做好软件分层设计。下面就简单说两点编程分层的思想。
分层思想 嵌入式分层思想,可能初学者不太懂,但你肯定见到过很多类似下面这样的软件结构图。
比如,RT-Thread Nano内核结构:
STM32Cube软件结构:
这种软件结构图,里面的东西可能有点多,可能你也看不懂。
但是,只要你仔细一看每个区域的划分,你就会发现,它们是把软件划分了多个区域,这里其实就是一种分层的思想。
举一个例子:一个遥控器控制一个小车运动,包含遥控器的按键(比如:前后左右),无线通信(比如:433),小车无线接收,电机驱动、电机控制算法等。
遇到这种嵌入式软件开发,你会怎么编程?
1.底层驱动层小车部分:电机驱动(比如IO时钟、PWM配置)封装成一个函数、433驱动封装成一个函数。然后把这两个函数整理在一个Driver(驱动)函数。
遥控部分同理:按键驱动(比如IO时钟、配置)封装成一个函数、433驱动封装成一个函数。
2.中间层这里比如你电机用到了加减速、左右转向的一些算法,封装成对应Middleware中间层模块函数(待应用层调用)。
3.应用层应用层就考验你业务逻辑的一层,也是整合软件资源的一层。如果你代码层次画分的话,业务逻辑代码就很容易。
反之,你代码很乱,要实现一个业务逻辑,可能连续加班多天,最后写出来的代码也是bug无数。
|