微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 单片机小白学步(16) 单片机/计算机系统概述:模块化思想

单片机小白学步(16) 单片机/计算机系统概述:模块化思想

时间:11-19 来源:互联网 点击:

经实现好的模块,像积木一样搭建新的系统,更是让效率大大提高。

模块的开发,可能是很多人分别完成的,也可能是同一个人在不同时期完成的,还有可能是从别人那免费获得或购买的。

具体到单片机的学习,其实一开始我们就在使用别人的模块。单片机、各种元件都是别人生产好的,运用这些模块,我们很快的搭建了自己的开发板。

同样的道理,在后面的详细学习过程中,我希望大家每次学完一个技术知识,就自己实现一个程序模块,例如数码管的驱动程序(虽然现在你可能还不理解这是什么)。到整个知识都快学完了,就有了一套自己的程序库,也就是全套的模块程序。

时间久了,或许你就有点记不清数码管驱动当初是怎么写的了。但是没关系,只要你写好了自己的程序模块,并且给出了规范的使用说明,需要时直接照着说明去用就可以了,而不需要再去复习一遍前面的知识。所以在后面开发自己的单片机系统时,直接用自己开发好的模块,就能极大的提高开发效率。

而在后面具体技术的学习中,我也会详细的分析,如何才能尽可能好的实现每一个模块,用到哪些技术知识,帮助大家一起搭建自己的程序库。

3、能开发出复杂系统

分工合作,使得人们能开发出一个人有生之年根本完成不了的、很庞大的系统。

而对于个人开发系统来说,如果你花几个月写一个比较庞大的程序,写到后面可能就忘记了前面的程序是怎么写的,这样可能会影响程序的继续编写。这时你可能需要回过头来再看以前的程序,但程序毕竟不是自然语言,看起来还是比较费劲的,很可能后来你自己也很难看懂了,至少是需要很多时间才能看懂。等你终于看懂了前面的东西,发现后面的代码又忘了。

而模块化的设计方法,你可以在一个小的时间段里,设计一个小的模块,并把它做的足够好,然后对整个模块编写一个自己能看懂的使用说明。以后要用这个模块,就把它当做一个抽象的整体,不需要关注模块内部细节实现,直接看使用说明就行了。这样,你才更有可能独立开发一个比较庞大的程序。

4、便于维护和查错

便于维护也是模块化很重要的一个特点。模块化讲究降低模块间的耦合度,一个不是很核心的模块出了问题,往往不会对其他模块造成很大影响,只会表现出系统中的一些功能无法使用(当然,如果核心模块例如电脑CPU出了问题,可能会导致整个系统崩溃)。这时你可以直接判断出哪个模块有问题,然后去修复那个模块,大大缩小了检查错误的范围。

不知道大家对前面《单片机程序下载失败总结》的那篇文章还有没有印象,文中提到,下载失败时,如果你能有一套正常下载程序的电脑、下载线、单片机系统板装备,通过替换的方法,很快就能确定问题是否出在你的电脑上。从这里可以看出来模块化思想在查错时的重大意义。

5、缺点

任何事物都有两面性,模块化思想也不例外。这里我简单说一下。

不知道大家有没有听说过这样的话,很多互联网公司都是“三个人拿四个人的钱干五个人的活”。为什么很多互联网公司工作非常累,工资很高,但是老板却不愿意降低工资多招聘一些人,同时让员工能更轻松呢?

有本书叫《人月神话》,里面就解释了这个问题的原因。人月是一个单位,表示一个人一个月能完成的工作量。按照人月理论,6个人月的工作两个人需要三个月完成,而三个人则只需要两个月。而事实是,在互联网公司,三个人往往需要远远不止两个月,甚至三个月还完成不了任务,人月理论只是一个不可能的神话。

为什么会这样呢?原因是多个人设计同一个系统,人与人之间需要沟通,人越多沟通需要的成本越大。所以招聘更多的人,意味着浪费掉更多的沟通成本。

如果把每个人看做一个模块,人月神话说明了,过多的模块会增加模块之间的交流成本,从而降低系统效率;而在模块特别多、关系很密切的时候,保持模块的独立性和模块之间的匹配,本身就成了很大的难题。

但是总体来说,模块化的优点远大于缺点,有些时候模块化也是不得已而为之的,而一些缺点往往是在特定情况下才有的。

=======================================================

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top