1> 首先讨论各种单片机与操作系统的关系
说到单片机,大家第一时间想到的应该是51单片机,对吧。不错,更高级一点的AVR,把他称为单片机,我们也还觉得可以接受。那么再高级一点的ARM7,8086,80386,Core i3,Athlon 等等我们更习惯称他们为CPU,因为学习计算机原理的时候都是这么叫的,但按照单片机的定义,他们也是归属于单片机。这也不怪大家,中国的教育都是这样,只注重告诉你是什么,而不告诉你他们之间的联系。上述几种单片机或者芯片(如果你还是觉得把core i3叫做单片机你不习惯的话)在原理上都是一样,即都是有运算器 控制器 寄存器构成的,不同之处在于它们的硬件电路实现不同,个数不同,功耗不同,计算能力不同,但都提供相同的基本功。OK,终于让cpu找到了组织,那么就介绍为什么有的单片机要操作系统,有的在我们学习的过程中压根就跟操作系统不挨边。
51/AVR单片机 在学习他们的时候,都是先介绍它们有哪些资源——有几个寄存器,有几个时钟等,然后就是怎么用汇编,用C或者是C与汇编混合编程。这里我们用的语言都是可以直接操作硬件资源的,因此我们可以自己决定什么时候使用哪个寄存器,什么时候将寄存器内容写到辅存储器中。
ARM单片机 在学习它的时候,我们可以给他搭载操作系统,如MicroC/OS,iOS X, Android或者其他定制的linux操作系统,但有时我们也经常不让它搭载操作系统,而是直接像使用51单片机那样来操作它。
Core i3 / Athlon单片机(或者CPU,如果你还是不喜欢用单片机来形容这么牛X的硬件) 你几乎没有听说过身边谁会在这种单片机上开发应用(如果有,一定要引荐我认识一下哦)。因为在这种单片机上开发的应用有一个很牛X的名字——操作系统! 由于这种单片机提供的资源太多,能干的活太多,我们需要有一个专门的程序来负责管理它,从而避免对相同的功能重复开发。这样我们就可以从对硬件编程中解放出来,更专注于应用层面的开发。从某种意义上来说,操作系统也就是一个应用程序而已,只不过他有点特别。
一般这种情况下,打个比方会比较好——单车和汽车。单车很简单,我们对它的构成及零部件也很熟悉,链条掉了,我们也完全能够应付。这就好比51单片机,资源不多,我们完全能够hold住。相较而言,汽车则复杂很多,有减速系统,刹车系统,电子系统,空调系统等等,但是我们并不需要清楚他们的硬件工作原理,我们之需要知道按那个开关,踩那个踏板就好了。这就好比单片机上的操作系统,它不需要我们清楚硬件的构造,想要实现功能,直接调用系统提供的API就可以了。 在我们双脚不停的蹬着踏板,自行车就前进这个动作中,我们是清楚的知道这其中各个部件的运行原理过程的;但如果你是踏着油门,汽车就跑起来,我觉得大部分人都不了解其中涉及到了哪些部件,以及各个部件的原理的。但这不妨碍我们使用,不是吗。
|