单片机编程系列之分层设计2(怎样合理拆分子系统)

前言

本次学习了百问网的七天物联网直播课收获很多,写下笔记记录一下。

1、拆分原则

各个子系统之间要尽可能的独立。
按键点灯示例程序我们可以划分为按键系统、LED系统、业务系统:
在这里插入图片描述
按键系统就专注于按键的操作,LED系统就专注于LED的操作,业务系统会把这两个子系统组合起来完成业务的操作。那怎么拆分呢?

2、按照数据流向分:输入/输出/业务

在这里插入图片描述
按键就相当于输入,LED就相当于输出,业务系统就相当于把他们联系起来。

a.细分输入部分

输入部分又可以细分为:用户输入、传感器、远程控制等等。就是根据输入源来拆分出各个输入的子系统。
在这里插入图片描述

b.细分输出部分

输出部分又可以细分为:显示屏、控制各类设备、数据保存等等。就是根据输出项来拆分出各个输入的子系统。
在这里插入图片描述

c.业务

在这里插入图片描述
业务是系统是一个综合处理,当输入了什么信息后,进入业务系统进行处理,然后输出相应的操作。

驱动和应用分开

在Linux驱动开发中,驱动只提供功能,不提供策略。
驱动和应用各司其职,不能越界。
以LCD的使用为例,可以分为3层:

  • 驱动程序。提供像素操作的功能,怎么显示字符,显示字体大小,在什么位置显示,它不负责。
  • 库函数/功能函数。提供显示字符、显示图片的功能,但是显示什么字符、在哪显示,它不负责。
  • APP。使用库函数来显示字符、显示图片,我甚至不需要看驱动程序。

例子:下面是对一个远程控制系统程序的结构划分。

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值