谈嵌入式软件分层设计

前言

当我们着手做任何一件事情之前,先从几个维度考虑问题:

  1. 为什么要做这件事?
  2. 做了能带来哪些好处?不做的后果是什么?
  3. 现在有比较好的工具支持吗?
  4. 怎样做的更好?

1.为什么要对嵌入式软件代码进行分层设计?

在大型的互联网软件中都会对软件代码进行分层设计,甚至引入了许多的设计模式的概念。但是在嵌入式软件开发中对这方面的就显得欠缺了许多,大部分的软件工程师人就停留在软件功能的实现上。可能对于熟悉代码的他来说,有没有软件分层,甚至有没有注释语句都不重要。但是对于今后接手这套代码的新人来说简直是噩梦了。

2.软件分层的好处?

  1. 代码层次感提升,简洁
  2. 各软件层专注做好一件事情
  3. 利于代码的维护

3.现在有比较好的工具支持吗?

嵌入式软件开发的工具相对来说是比较落后的,暂时没找到工具支持

4.怎样做的更好?

在实际编写代码之前,先做好代码的概要设计,模块设计。

下面介绍我写的例子,代码已经上传到GitHub上,欢迎各位大佬Frok,可以一起参与到我的项目中

GitHub地址:huangwenxi

项目结构

目录功能
app应用层目录
bin编译生成的可执行文件存放目录
build自动换编译脚本目录
core核心管理层目录
doc文档目录
drivers设备相关的目录

app文件夹 :

app功能
main.c主程序
gsm/gsm_test.cgsm设备应用层代码文件
gsm/gsm_test.hgsm设备应用层代码头文件

core 文件夹:

core功能
dev_operations.c核心层源文件
dev_operations.h核心层头文件

drivers文件夹:

drivers功能
gsm/gsm_drivers.cgsm设备相关源文件
gsm/gsm_drivers.hgsm设备相关头文件

框架设计

我的大致思路是将软件分成三层:

  1. 应用层
  2. 核心管理层
  3. 设备相关层

设备相关层调用核心管理层的接口注册设备操作接口。应用层调用核心管理层的接口操作设备,核心层接收应用层的请求调用具体的驱动注册上来的操作设备接口。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值