[其他ST产品]

模块化

[复制链接]
924|23
手机看帖
扫描二维码
随时随地手机跟帖
zhaoxqi|  楼主 | 2018-7-24 19:31 | 显示全部楼层 |阅读模式
单片机程序如果分成模块,通过连线连接这些模块间的输入和输出,直观明了,还容易修改逻辑,和领导还好解释,模块内部高度内聚,模块间几乎没有耦合,只有连线。
一部分模块和硬件相关,其它都是纯软件,修改时也只是改改软件模块和连线。
jiajs| | 2018-7-24 19:32 | 显示全部楼层
有点OO(面向对象)编程的意思了,就像java和C#似的的封装成类,看起来简单明了,只不过C语言不能不是面向对象的语言,不过还是可以效仿的

使用特权

评论回复
zhaoxqi|  楼主 | 2018-7-24 19:34 | 显示全部楼层
C语言很方便,但大多数软件开发人员,写软件求方便,到处使用全局变量,导致程序模块思想荡然无存,实在是让人头疼啊

使用特权

评论回复
wyjie| | 2018-7-24 19:35 | 显示全部楼层
这点确实是,不过编程经验丰富的程序员将头文件和源文件编写的很好,变量也分别定义,全局变量放在一个头文件里,还是看个人的编程习惯了

使用特权

评论回复
jlyuan| | 2018-7-24 19:37 | 显示全部楼层

没觉得全局变量有什么不好,
只要把握住逻辑,别导致混乱。

使用特权

评论回复
zhanghqi| | 2018-7-24 19:39 | 显示全部楼层

现在芯片资源多,用不完。
我的项目经常用很多全局变量,变量名就有上百。

使用特权

评论回复
wyjie| | 2018-7-24 19:40 | 显示全部楼层

全局变量比较慢,这是真的。
所以,大批量处理要先导入局部变量,最后再导一次。

使用特权

评论回复
zhanghqi| | 2018-7-24 19:42 | 显示全部楼层

c里面的struct就可以达到一定程度的封装。

使用特权

评论回复
jlyuan| | 2018-7-24 19:44 | 显示全部楼层
如果C达不到要求,可以用C++。

使用特权

评论回复
dengdc| | 2018-7-24 19:47 | 显示全部楼层
通过一个全局的类指针去访问多个成员,总比访问多个全局变量要好些。

使用特权

评论回复
heweibig| | 2018-7-24 19:50 | 显示全部楼层
另一方面,命名空间也可以限定变量作用域,使用起来也很方便。

使用特权

评论回复
wuhany| | 2018-7-24 19:52 | 显示全部楼层
C 做不了这事,只有 C++。

使用特权

评论回复
jiahy| | 2018-7-24 19:54 | 显示全部楼层
现在手头上的项目就是用c来面向对象实现模块化,c还是很方便的,个人感觉还用不到c++,如果用到c++,新人还要学习c++,学习成本高于让他们深入学好C, 维护不方便。

使用特权

评论回复
spark周| | 2018-7-24 19:56 | 显示全部楼层
目前项目中全局变量是禁止使用的,只有模块的接口可以用静态的全局,这样模块化也好做写

使用特权

评论回复
jiaxw| | 2018-7-24 19:58 | 显示全部楼层
C怎么会做不了呢,那人家那些芯片的库函数怎么写出来的

使用特权

评论回复
liliang9554| | 2018-7-24 20:01 | 显示全部楼层

c用结构体和函数指针也可以写出类似class的简单的模块的

使用特权

评论回复
午夜粪车| | 2018-7-24 20:02 | 显示全部楼层

不过c还是面向过程为主

使用特权

评论回复
huangchui| | 2018-7-24 20:04 | 显示全部楼层
楼主的想法是像积木一样把一些“功能组件”在“框架”的约束下“快速搭建”成需要的“应用程序”。最重要的是,组件还必须做到“易用性”和“普适性”,遵守“开闭原则”,同时需要兼顾“高效率”和“低开销”。

使用特权

评论回复
zhenykun| | 2018-7-24 20:06 | 显示全部楼层
而 bsp 库基本不算具有一定功能的“组件”,而勉强能称为组件的那些协议栈、GUI 库等等,上述几方面特性都做的不好。

使用特权

评论回复
wyjie| | 2018-7-24 20:09 | 显示全部楼层
我认为 C 的抽象能力严重不足是导致无法实现优异的嵌入式组件的根本原因,而 C++ 天生具有强大的抽象能力,并且具有高效的多范型设计,完全可以实现各方面特性都优异的嵌入式组件,C++ 唯一的缺点是难度巨大,学习曲线陡峭,绝大部分人在学有所成之前就已经放弃了,也就无法领略到 C++ 的风采。

使用特权

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

本版积分规则

808

主题

10636

帖子

4

粉丝