[MCU]

程序模块间的解耦

[复制链接]
2898|14
手机看帖
扫描二维码
随时随地手机跟帖
luofeng2g|  楼主 | 2014-12-5 13:00 | 显示全部楼层 |阅读模式
mcu5i51| | 2014-12-5 13:24 | 显示全部楼层
项目或设备本身就是相互影响的,没有办法全部解除通讯
或许参考一些操作系统弄些硬件的“设备文件”可以减少些,不过会把问题复杂化

使用特权

评论回复
ayb_ice| | 2014-12-5 13:31 | 显示全部楼层
邮箱,消息队列都是通信,是个不错的方法

使用特权

评论回复
wxjcan| | 2014-12-5 16:24 | 显示全部楼层
同意楼上

使用特权

评论回复
苏山人家| | 2014-12-5 23:58 | 显示全部楼层
驱动模块我都是用结构体封装
功能模块复用很少

使用特权

评论回复
luofeng2g|  楼主 | 2014-12-7 21:41 | 显示全部楼层
mcu5i51 发表于 2014-12-5 13:24
项目或设备本身就是相互影响的,没有办法全部解除通讯
或许参考一些操作系统弄些硬件的“设备文件”可以减 ...

确实有些是把简单问题复杂化,全局变量一般能用什么代替呢??

使用特权

评论回复
luofeng2g|  楼主 | 2014-12-7 21:42 | 显示全部楼层
ayb_ice 发表于 2014-12-5 13:31
邮箱,消息队列都是通信,是个不错的方法

这些就像是os,如果裸奔这样写的话就不如直接上os了

使用特权

评论回复
luofeng2g|  楼主 | 2014-12-7 21:43 | 显示全部楼层
苏山人家 发表于 2014-12-5 23:58
驱动模块我都是用结构体封装
功能模块复用很少

一般全局变量怎么处理?

使用特权

评论回复
ayb_ice| | 2014-12-8 08:04 | 显示全部楼层
luofeng2g 发表于 2014-12-7 21:42
这些就像是os,如果裸奔这样写的话就不如直接上os了

不能这么说

程序的核心是思想,是封装,是维护方便

使用特权

评论回复
luofeng2g|  楼主 | 2014-12-8 09:21 | 显示全部楼层
ayb_ice 发表于 2014-12-8 08:04
不能这么说

程序的核心是思想,是封装,是维护方便

谢谢回复!关于这方面,有没有推荐的书籍啊?

使用特权

评论回复
ayb_ice| | 2014-12-8 09:22 | 显示全部楼层
luofeng2g 发表于 2014-12-8 09:21
谢谢回复!关于这方面,有没有推荐的书籍啊?

操作系统的书就不错

使用特权

评论回复
苏山人家| | 2014-12-8 15:19 | 显示全部楼层
luofeng2g 发表于 2014-12-7 21:43
一般全局变量怎么处理?

驱动这部分都封装在结构体内! 功能模块根据功能不同封装结构体  例如显示用的Display结构体   发送数据用的消息结构体    类似类的概念

使用特权

评论回复
luofeng2g|  楼主 | 2014-12-8 17:43 | 显示全部楼层
苏山人家 发表于 2014-12-8 15:19
驱动这部分都封装在结构体内! 功能模块根据功能不同封装结构体  例如显示用的Display结构体   发送数据 ...

那我如果一个模块只用另一个模块的某个状态(一个全局变量),也封装在结构体中么?还是有其他想法?》

使用特权

评论回复
苏山人家| | 2014-12-8 21:20 | 显示全部楼层
本帖最后由 苏山人家 于 2014-12-8 21:24 编辑
luofeng2g 发表于 2014-12-8 17:43
那我如果一个模块只用另一个模块的某个状态(一个全局变量),也封装在结构体中么?还是有其他想法?》 ...


模块参数封装成结构体,别的模块需要就去读写这个结构体。类似于stm32库
例如触摸芯片  做个结构体 一个触摸状态标志flag 两个原始ad(x,y)两个转换后地址。

使用特权

评论回复
luofeng2g|  楼主 | 2014-12-8 21:36 | 显示全部楼层
苏山人家 发表于 2014-12-8 21:20
模块参数封装成结构体,别的模块需要就去读写这个结构体。类似于stm32库
例如触摸芯片  做个结构体 一个 ...

http://blog.chinaunix.net/uid-26443921-id-3361188.html看看这个

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

24

主题

824

帖子

5

粉丝