深入淺出處理器(上)_基本概念-創(chuàng)新互聯(lián)

專題1—深入淺出處理器

1.處理器基本概念

1.1處理器于微控制器的區(qū)別:

?微控制器一般是指:CPU + 片內(nèi)內(nèi)存 + 片外外設(shè)
?微處理器一般指單充的CPU
對于目前的嵌入式設(shè)備而言,通常使用的都是微控制器,或這稱為SoC(system on chip),低成本、地功耗。對于軟件工程師而言,微控制器和微處理器沒有任何區(qū)別

為洛浦等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及洛浦網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、洛浦網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

1.2什么是CPU?

CPU在固定頻率的時鐘控制下節(jié)奏運(yùn)行。
CPU可以通過總線讀取外部存儲設(shè)備中的二進(jìn)制指令集,然后解碼執(zhí)行。
這些可以被CPU解碼執(zhí)行的二進(jìn)制指令集是CPU設(shè)計(jì)的時候確定的,是CPU的設(shè)計(jì)者(ARM公司等)定義的,本質(zhì)上是一串由1和0組成的數(shù)字。這就是CPU的匯編指令集。
從源代碼到CPU執(zhí)行過程:
深入淺出處理器(上)_基本概念

1.3寄存器的分類;

A.CPU寄存器
—CPU寄存器負(fù)責(zé)專有指令執(zhí)行,數(shù)據(jù)運(yùn)算,變量處理、參數(shù)傳遞
B.外設(shè)寄存器
—外設(shè)寄存器用于控制外設(shè)的行為和工作方式,配置值需要根據(jù)外設(shè)的芯片手冊完成。
—外設(shè)寄存器是編程者控制硬件的關(guān)鍵,是留作外設(shè)被編程控制的“活動開關(guān)”,正如匯編指令集是CPU的編程接口API一樣,寄存器是外設(shè)硬件的軟件編程接口API。使用軟件編程控制某一硬件,其實(shí)就是編程讀寫該硬件的寄存器。

1.4兩個關(guān)鍵寄存器

對于CPU寄存器我們需要特別關(guān)注這兩個寄存器
A.PC指針-程序計(jì)數(shù)器(指令指針I(yè)P)
之所以被稱之為PC指針,是因?yàn)槠渲赶虻氖羌磳?zhí)行的下一條指令(這里我們不考慮多級緩存的問題),類似于指針。每執(zhí)行一條指令,PC的值就會發(fā)生相應(yīng)的變化。
B.SP指針-棧指針
棧指針始終只想棧空間的頂部,實(shí)現(xiàn)LIFO特性
保存中斷斷點(diǎn)、函數(shù)調(diào)用的的返回值,保存CPU現(xiàn)場等
PC指針和SP指針的使用示例:最初PC指針指向mov 指令,進(jìn)行下一次跳轉(zhuǎn)(執(zhí)行jmp)指令之前會進(jìn)行現(xiàn)場保存,從SP指針?biāo)傅奈恢瞄_始,將數(shù)據(jù)保存在棧空間,SP指針依次移動,這里還有一個BP指針(基址指針),用于保存上一次SP的值,則此時BP與SP之間保存的就是指令跳轉(zhuǎn)前的現(xiàn)場,當(dāng)函數(shù)返回,或者中斷執(zhí)行完畢后,就會從該段地址進(jìn)行現(xiàn)場恢復(fù),SP指針指向其原來的值。
深入淺出處理器(上)_基本概念

1.5 IO操作

處理器的IO操作:
A.處理器與外設(shè)之間的數(shù)據(jù)通過IO操作完成
B.內(nèi)存映射IO空間(內(nèi)存與IO統(tǒng)一編址)
外設(shè)通過精密的硬件連接映射到處理器的地址空間
通過地址訪問的方式與外設(shè)進(jìn)行通信
C.獨(dú)立IO映射(內(nèi)存與IO獨(dú)立編址)
a)獨(dú)立于地址空間,無法通過地址訪問外設(shè)
b)使用專用指令于外設(shè)進(jìn)行通信
D.操作IO其實(shí)就是配置控制寄存器,對寄存器進(jìn)行讀寫操作。

1.6地址映射

通過具體的硬件設(shè)計(jì),可以使得地址總線上的值在某個范圍內(nèi),片選信號為真,即:使能連接設(shè)備從而讀取相應(yīng)地址中的數(shù)據(jù)。
片選信號由地址線產(chǎn)生。
深入淺出處理器(上)_基本概念
地址映射示例:
如下面的地址0XFFFF1234,這是一個32位地址,如何映射到只有16位的地址空間??
通常的做法,使用高位地址通過&&運(yùn)算產(chǎn)生一個片選信號,然后直接通過低位地址訪問實(shí)際的內(nèi)存空間。
深入淺出處理器(上)_基本概念

1.7處理器啟動過程

處理器上電之后,PC指針固話了一個默認(rèn)值(通常是0),PC指針的默認(rèn)值用于決定第一條執(zhí)行的指令。然后接著執(zhí)行后續(xù)的指令,整個過程如下圖所示。
深入淺出處理器(上)_基本概念
啟動程序(BootLoader):
BootLoader是系統(tǒng)上電后運(yùn)行的第一個程序,通常用于啟動操作系統(tǒng)。根據(jù)運(yùn)行階段,體積和功能的不同分為三個部分(通常的做法):
BL0-固話于硬件之中,用于初始化最基本的硬件,并加載BL1;
BL1-存儲于外部存儲設(shè)備中,用于初始化主存,加載并運(yùn)行BL2;
BL2-存儲于外部設(shè)備中,用于引導(dǎo)和啟動操作系統(tǒng)。
實(shí)例分析:
對于S3C6410,這款芯片,其啟動過程的設(shè)計(jì)和我們上面所講的完全相符
第一階段:首先系統(tǒng)上電后會運(yùn)行固化在IROM內(nèi)部的BL0,這部分程序的工程完成最基本的初始化工作(關(guān)看門狗、初始化指令cache、初始化棧、堆,加載BL1到內(nèi)部IRAM,跳轉(zhuǎn)到BL1去執(zhí)行)。
第二階段:然后IRAM中的代碼負(fù)責(zé)初始化內(nèi)存(SDRAM)然后加載BL2到SRM中,并跳轉(zhuǎn)到SRAM.
第三階段:BL2在SDRAM中運(yùn)行,然后加載OS到SDRAM并啟動操作系統(tǒng)
深入淺出處理器(上)_基本概念

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

網(wǎng)站題目:深入淺出處理器(上)_基本概念-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://www.muchs.cn/article46/coiieg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站改版、服務(wù)器托管、搜索引擎優(yōu)化、網(wǎng)站維護(hù)、營銷型網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)