当前位置:首页 > 单片机 > 单片机
[导读]说到单片机,大家第一时间想到的应该是51单片机,对吧。不错,更高级一点的AVR,把他称为单片机,我们也还觉得可以接受。那么再高级一点的ARM7,8086,80386,Core i3,Athlon 等等我们更习惯称他们为CPU,因为学习计算机原理的时候都是这么叫的,但按照单片机的定义,他们也是归属于单片机。

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,如果你还是不喜欢用单片机来形容这么牛逼的硬件) 你几乎没有听说过身边谁会在这种单片机上开发应用(如果有,一定要引荐我认识一下哦)。因为在这种单片机上开发的应用有一个很牛逼的名字——操作系统! 由于这种单片机提供的资源太多,能干的活太多,我们需要有一个专门的程序来负责管理它,从而避免对相同的功能重复开发。这样我们就可以从对硬件编程中解放出来,更专注于应用层面的开发。从某种意义上来说,操作系统也就是一个应用程序而已,只不过他有点特别。

一般这种情况下,打个比方会比较好——单车和汽车。单车很简单,我们对它的构成及零部件也很熟悉,链条掉了,我们也完全能够应付。这就好比51单片机,资源不多,我们完全能够hold住。相较而言,汽车则复杂很多,有减速系统,刹车系统,电子系统,空调系统等等,但是我们并不需要清楚他们的硬件工作原理,我们之需要知道按那个开关,踩那个踏板就好了。这就好比单片机上的操作系统,它不需要我们清楚硬件的构造,想要实现功能,直接调用系统提供的API就可以了。 在我们双脚不停的蹬着踏板,自行车就前进这个动作中,我们是清楚的知道这其中各个部件的运行原理过程的;但如果你是踏着油门,汽车就跑起来,我觉得大部分人都不了解其中涉及到了哪些部件,以及各个部件的原理的。但这不妨碍我们使用,不是吗。

2> cpu与指令集的关系

cpu依靠指令来计算和控制系统,每款CPU在设计时就规定了一些列与其硬件电路相配合的指令系统,或者说某款cpu的硬件设计其实就是针对某个指令集的一种硬件实现。指令集也就是所谓的目标代码(或称为机器代码,是可以直接在CPU上运行的代码)可以看作是要求cpu对外提供的功能,某款CPU的设计肯定是朝着某个指令集来的。所以,不同的cpu架构,也表示这他的指令集要么较之前的指令集有所拓展或者就是实现了一种全新的指令集。指令集中的一条指令,就是让cpu完成一系列的动作,而该动作的完成则表明了某种运算的完成。一个功能可能需要一条或几条指令来实现。比如汇编的MOV或者LD语句就可能对应着几条cpu指令。

下面介绍几种常见的CPU架构与指令集的对应关系(所谓架构是指硬件电路的实现):

intel X86架构CPU可能实现了多个指令集x86,x86-64,MMX,SSE,SSE2,SSE3,SSSE3 ,而这些指令集中的指令让cpu完成的动作都比较复杂,所以也称为CISC

AMD amd64架构的cpu 兼容了x86指令集还拓增了3D-Now!指令集,用于加强对3D显示的支持。

ARM ARMv1~ARMv7架构的cpu实现了Thumb指令集和ARM指令集。这些指令集中的一条指令让cpu完成的动作都比较简单,所以也称为RISC指令集

3> 指令集与操作系统的关系

这里要重新提及一下之前讲到的两个概念:指令集——就是机器代码;操作系统——就是应用程序

首先我们要知道计算机之父冯-诺伊曼说计算机只能运行在二进制上。所以不论是操作系统还是普通的应用程序最终都得转化到二进制代码才能够被cpu所处理。而用高级语言编写的普通应用程序都必须经过编译器编译后成为二进制代码(指令)才能运行。而不同的cpu所实现的指令集不同,所以不同的指令集对应的编译器也不尽相同,编译器不同,相同的高级语言程序经过编译后所得到的二进制代码也不同。这就引出了“移植”和“跨平台”两个概念。OK,重新捋一下:cpu架构-指令集-编译器-程序 环环相扣,紧密联系。所以你就会听到说Windows操作系统只能够运行在X86架构的CPU上,不能运行在Power 或 ARM 上,因为指令集不同,又所以就有了“Wintel”联盟。所以你也可以看到有的编译器是有硬件厂家提供的,比如Intel就提供C和C++的编译器,这样编译出来的程序就能更好的利用硬件的性能。那为什么又会听到linux可以运行在不同架构的CPU上呢?那是因为linux是开源的,因此就可以将它移植到不同的CPU平台上,然后在用相应的编译器编译,就得到了可以在该CPU上运行的二进制代码了。而Windows是封闭的,得不到源代码,而MS自己又没有移植到别的CPU平台上的打算,所以当然就只能在X86上运行了。(BTW,X86也是性能最好的CPU之一,而Windows对性能要求较高,所以MS当然也就不愿意移植了)

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭