当我们着手做任何一件事情之前,先从几个维度考虑问题:
1.为什么要对嵌入式软件代码进行分层设计?
在大型的互联网软件中都会对软件代码进行分层设计,甚至引入了许多的设计模式的概念。但是在嵌入式软件开发中对这方面的就显得欠缺了许多,大部分的软件工程师人就停留在软件功能的实现上。可能对于熟悉代码的他来说,有没有软件分层,甚至有没有注释语句都不重要。但是对于今后接手这套代码的新人来说简直是噩梦了。
2.软件分层的好处?
3.现在有比较好的工具支持吗?
嵌入式软件开发的工具相对来说是比较落后的,暂时没找到工具支持
4.怎样做的更好?
在实际编写代码之前,先做好代码的概要设计,模块设计。
下面介绍我写的例子,代码已经上传到GitHub上,欢迎各位大佬Frok,可以一起参与到我的项目中
目录 | 功能 |
app | 应用层目录 |
bin | 编译生成的可执行文件存放目录 |
build | 自动换编译脚本目录 |
core | 核心管理层目录 |
doc | 文档目录 |
drivers | 设备相关的目录 |
app文件夹 :
app | 功能 |
main.c | 主程序 |
gsm/gsm_test.c | gsm设备应用层代码文件 |
gsm/gsm_test.h | gsm设备应用层代码头文件 |
core 文件夹:
core | 功能 |
dev_operations.c | 核心层源文件 |
dev_operations.h | 核心层头文件 |
drivers文件夹:
drivers | 功能 |
gsm/gsm_drivers.c | gsm设备相关源文件 |
gsm/gsm_drivers.h | gsm设备相关头文件 |
我的大致思路是将软件分成三层:
设备相关层调用核心管理层的接口注册设备操作接口。应用层调用核心管理层的接口操作设备,核心层接收应用层的请求调用具体的驱动注册上来的操作设备接口。
免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删