前言
本次学习了百问网的七天物联网直播课收获很多,写下笔记记录一下。
1、拆分原则
各个子系统之间要尽可能的独立。
按键点灯示例程序我们可以划分为按键系统、LED系统、业务系统:
按键系统就专注于按键的操作,LED系统就专注于LED的操作,业务系统会把这两个子系统组合起来完成业务的操作。那怎么拆分呢?
2、按照数据流向分:输入/输出/业务
按键就相当于输入,LED就相当于输出,业务系统就相当于把他们联系起来。
a.细分输入部分
输入部分又可以细分为:用户输入、传感器、远程控制等等。就是根据输入源来拆分出各个输入的子系统。
b.细分输出部分
输出部分又可以细分为:显示屏、控制各类设备、数据保存等等。就是根据输出项来拆分出各个输入的子系统。
c.业务
业务是系统是一个综合处理,当输入了什么信息后,进入业务系统进行处理,然后输出相应的操作。
驱动和应用分开
在Linux驱动开发中,驱动只提供功能,不提供策略。
驱动和应用各司其职,不能越界。
以LCD的使用为例,可以分为3层:
- 驱动程序。提供像素操作的功能,怎么显示字符,显示字体大小,在什么位置显示,它不负责。
- 库函数/功能函数。提供显示字符、显示图片的功能,但是显示什么字符、在哪显示,它不负责。
- APP。使用库函数来显示字符、显示图片,我甚至不需要看驱动程序。