真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

深入淺出處理器(上)_基本概念

專題1—深入淺出處理器

1.處理器基本概念

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

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

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、小程序定制開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了渭源免費(fèi)建站歡迎大家使用!

1.2什么是CPU?

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

1.3寄存器的分類;

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

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

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

1.5 IO操作

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

1.6地址映射

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

1.7處理器啟動(dòng)過(guò)程

處理器上電之后,PC指針固話了一個(gè)默認(rèn)值(通常是0),PC指針的默認(rèn)值用于決定第一條執(zhí)行的指令。然后接著執(zhí)行后續(xù)的指令,整個(gè)過(guò)程如下圖所示。
深入淺出處理器(上)_基本概念
啟動(dòng)程序(BootLoader):
BootLoader是系統(tǒng)上電后運(yùn)行的第一個(gè)程序,通常用于啟動(dòng)操作系統(tǒng)。根據(jù)運(yùn)行階段,體積和功能的不同分為三個(gè)部分(通常的做法):
BL0-固話于硬件之中,用于初始化最基本的硬件,并加載BL1;
BL1-存儲(chǔ)于外部存儲(chǔ)設(shè)備中,用于初始化主存,加載并運(yùn)行BL2;
BL2-存儲(chǔ)于外部設(shè)備中,用于引導(dǎo)和啟動(dòng)操作系統(tǒng)。
實(shí)例分析:
對(duì)于S3C6410,這款芯片,其啟動(dòng)過(guò)程的設(shè)計(jì)和我們上面所講的完全相符
第一階段:首先系統(tǒng)上電后會(huì)運(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并啟動(dòng)操作系統(tǒng)
深入淺出處理器(上)_基本概念


新聞標(biāo)題:深入淺出處理器(上)_基本概念
網(wǎng)站URL:http://weahome.cn/article/gohiei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部