日本高清不卡中文字幕-一起草草视频在线观看-亚洲精品一区二区三区色-国产亚洲精品免费视频

你好!歡迎來到深圳市穎特新科技有限公司!
語言
當前位置:首頁 >> 技術中心 >> 單片機入門 >> 單片機指令集和操作系統(tǒng)的關系

單片機指令集和操作系統(tǒng)的關系

關鍵字:單片機 指令集 操作系統(tǒng) 作者:admin 來源:不詳 發(fā)布時間:2018-05-18  瀏覽:12

1> 首先討論各種單片機與操作系統(tǒng)的關系

說到單片機,大家第一時間想到的應該是51單片機,對吧。不錯,更高級一點的AVR,把他稱為單片機,我們也還覺得可以接受。那么再高級一點的ARM7,8086,80386,Core i3,Athlon 等等我們更習慣稱他們?yōu)镃PU,因為學習計算機原理的時候都是這么叫的,但按照單片機的定義,他們也是歸屬于單片機。這也不怪大家,中國的教育都是這樣,只注重告訴你是什么,而不告訴你他們之間的聯(lián)系。上述幾種單片機或者芯片(如果你還是覺得把core i3叫做單片機你不習慣的話)在原理上都是一樣,即都是有運算器 控制器 寄存器構(gòu)成的,不同之處在于它們的硬件電路實現(xiàn)不同,個數(shù)不同,功耗不同,計算能力不同,但都提供相同的基本功。OK,終于讓cpu找到了組織,那么就介紹為什么有的單片機要操作系統(tǒng),有的在我們學習的過程中壓根就跟操作系統(tǒng)不挨邊。

51/AVR單片機 在學習他們的時候,都是先介紹它們有哪些資源——有幾個寄存器,有幾個時鐘等,然后就是怎么用匯編,用C或者是C與匯編混合編程。這里我們用的語言都是可以直接操作硬件資源的,因此我們可以自己決定什么時候使用哪個寄存器,什么時候?qū)⒓拇嫫鲀?nèi)容寫到輔存儲器中。

ARM單片機 在學習它的時候,我們可以給他搭載操作系統(tǒng),如MicroC/OS,iOS X, Android或者其他定制的Linux操作系統(tǒng),但有時我們也經(jīng)常不讓它搭載操作系統(tǒng),而是直接像使用51單片機那樣來操作它。

Core i3 / Athlon單片機(或者CPU,如果你還是不喜歡用單片機來形容這么牛逼的硬件) 你幾乎沒有聽說過身邊誰會在這種單片機上開發(fā)應用(如果有,一定要引薦我認識一下哦)。因為在這種單片機上開發(fā)的應用有一個很牛逼的名字——操作系統(tǒng)! 由于這種單片機提供的資源太多,能干的活太多,我們需要有一個專門的程序來負責管理它,從而避免對相同的功能重復開發(fā)。這樣我們就可以從對硬件編程中解放出來,更專注于應用層面的開發(fā)。從某種意義上來說,操作系統(tǒng)也就是一個應用程序而已,只不過他有點特別。

一般這種情況下,打個比方會比較好——單車和汽車。單車很簡單,我們對它的構(gòu)成及零部件也很熟悉,鏈條掉了,我們也完全能夠應付。這就好比51單片機,資源不多,我們完全能夠hold住。相較而言,汽車則復雜很多,有減速系統(tǒng),剎車系統(tǒng),電子系統(tǒng),空調(diào)系統(tǒng)等等,但是我們并不需要清楚他們的硬件工作原理,我們之需要知道按那個開關,踩那個踏板就好了。這就好比單片機上的操作系統(tǒng),它不需要我們清楚硬件的構(gòu)造,想要實現(xiàn)功能,直接調(diào)用系統(tǒng)提供的API就可以了。 在我們雙腳不停的蹬著踏板,自行車就前進這個動作中,我們是清楚的知道這其中各個部件的運行原理過程的;但如果你是踏著油門,汽車就跑起來,我覺得大部分人都不了解其中涉及到了哪些部件,以及各個部件的原理的。但這不妨礙我們使用,不是嗎。

2> cpu與指令集的關系

cpu依靠指令來計算和控制系統(tǒng),每款CPU在設計時就規(guī)定了一些列與其硬件電路相配合的指令系統(tǒng),或者說某款cpu的硬件設計其實就是針對某個指令集的一種硬件實現(xiàn)。指令集也就是所謂的目標代碼(或稱為機器代碼,是可以直接在CPU上運行的代碼)可以看作是要求cpu對外提供的功能,某款CPU的設計肯定是朝著某個指令集來的。所以,不同的cpu架構(gòu),也表示這他的指令集要么較之前的指令集有所拓展或者就是實現(xiàn)了一種全新的指令集。指令集中的一條指令,就是讓cpu完成一系列的動作,而該動作的完成則表明了某種運算的完成。一個功能可能需要一條或幾條指令來實現(xiàn)。比如匯編的MOV或者LD語句就可能對應著幾條cpu指令。

下面介紹幾種常見的CPU架構(gòu)與指令集的對應關系(所謂架構(gòu)是指硬件電路的實現(xiàn)):

intel X86架構(gòu)CPU可能實現(xiàn)了多個指令集x86,x86-64,MMX,SSE,SSE2,SSE3,SSSE3 ,而這些指令集中的指令讓cpu完成的動作都比較復雜,所以也稱為CISC

AMD amd64架構(gòu)的cpu 兼容了x86指令集還拓增了3D-Now!指令集,用于加強對3D顯示的支持。

ARM ARMv1~ARMv7架構(gòu)的cpu實現(xiàn)了Thumb指令集和ARM指令集。這些指令集中的一條指令讓cpu完成的動作都比較簡單,所以也稱為RISC指令集

3> 指令集與操作系統(tǒng)的關系

這里要重新提及一下之前講到的兩個概念:指令集——就是機器代碼;操作系統(tǒng)——就是應用程序

首先我們要知道計算機之父馮-諾伊曼說計算機只能運行在二進制上。所以不論是操作系統(tǒng)還是普通的應用程序最終都得轉(zhuǎn)化到二進制代碼才能夠被cpu所處理。而用高級語言編寫的普通應用程序都必須經(jīng)過編譯器編譯后成為二進制代碼(指令)才能運行。而不同的cpu所實現(xiàn)的指令集不同,所以不同的指令集對應的編譯器也不盡相同,編譯器不同,相同的高級語言程序經(jīng)過編譯后所得到的二進制代碼也不同。這就引出了“移植”和“跨平臺”兩個概念。OK,重新捋一下:cpu架構(gòu)-指令集-編譯器-程序 環(huán)環(huán)相扣,緊密聯(lián)系。所以你就會聽到說Windows操作系統(tǒng)只能夠運行在X86架構(gòu)的CPU上,不能運行在Power 或 ARM 上,因為指令集不同,又所以就有了“Wintel”聯(lián)盟。所以你也可以看到有的編譯器是有硬件廠家提供的,比如Intel就提供C和C++的編譯器,這樣編譯出來的程序就能更好的利用硬件的性能。那為什么又會聽到linux可以運行在不同架構(gòu)的CPU上呢?那是因為linux是開源的,因此就可以將它移植到不同的CPU平臺上,然后在用相應的編譯器編譯,就得到了可以在該CPU上運行的二進制代碼了。而Windows是封閉的,得不到源代碼,而MS自己又沒有移植到別的CPU平臺上的打算,所以當然就只能在X86上運行了。(BTW,X86也是性能最好的CPU之一,而Windows對性能要求較高,所以MS當然也就不愿意移植了)

編輯:admin  最后修改時間:2018-05-18

聯(lián)系方式

0755-82591179

傳真:0755-82591176

郵箱:vicky@yingtexin.net

地址:深圳市龍華區(qū)民治街道民治大道973萬眾潤豐創(chuàng)業(yè)園A棟2樓A08

Copyright © 2014-2023 穎特新科技有限公司 All Rights Reserved.  粵ICP備14043402號-4

察隅县| 丹棱县| 视频| 宁乡县| 城市| 宁乡县| 上高县| 马龙县| 昌黎县| 新民市| 城市| 麻江县| 新田县| 毕节市| 怀宁县| 定襄县| 黎平县| 长宁区| 蓝田县| 扎赉特旗| 铅山县| 内丘县| 峡江县| 若尔盖县| 丹阳市| 鲁甸县| 达尔| 隆安县| 武汉市| 贡嘎县| 江油市| 达州市| 若尔盖县| 庆元县| 海兴县| 新化县| 太原市| 昌邑市| 泉州市| 渭源县| 保康县|