?微控制器一般是指:CPU + 片內(nèi)內(nèi)存 + 片外外設(shè)
?微處理器一般指單充的CPU
對于目前的嵌入式設(shè)備而言,通常使用的都是微控制器,或這稱為SoC(system on chip),低成本、地功耗。對于軟件工程師而言,微控制器和微處理器沒有任何區(qū)別
CPU在固定頻率的時(shí)鐘控制下節(jié)奏運(yùn)行。
CPU可以通過總線讀取外部存儲(chǔ)設(shè)備中的二進(jìn)制指令集,然后解碼執(zhí)行。
這些可以被CPU解碼執(zhí)行的二進(jìn)制指令集是CPU設(shè)計(jì)的時(shí)候確定的,是CPU的設(shè)計(jì)者(ARM公司等)定義的,本質(zhì)上是一串由1和0組成的數(shù)字。這就是CPU的匯編指令集。
從源代碼到CPU執(zhí)行過程:
A.CPU寄存器
—CPU寄存器負(fù)責(zé)專有指令執(zhí)行,數(shù)據(jù)運(yùn)算,變量處理、參數(shù)傳遞
B.外設(shè)寄存器
—外設(shè)寄存器用于控制外設(shè)的行為和工作方式,配置值需要根據(jù)外設(shè)的芯片手冊完成。
—外設(shè)寄存器是編程者控制硬件的關(guān)鍵,是留作外設(shè)被編程控制的“活動(dòng)開關(guān)”,正如匯編指令集是CPU的編程接口API一樣,寄存器是外設(shè)硬件的軟件編程接口API。使用軟件編程控制某一硬件,其實(shí)就是編程讀寫該硬件的寄存器。
對于CPU寄存器我們需要特別關(guān)注這兩個(gè)寄存器
A.PC指針-程序計(jì)數(shù)器(指令指針I(yè)P)
之所以被稱之為PC指針,是因?yàn)槠渲赶虻氖羌磳?zhí)行的下一條指令(這里我們不考慮多級緩存的問題),類似于指針。每執(zhí)行一條指令,PC的值就會(huì)發(fā)生相應(yīng)的變化。
B.SP指針-棧指針
棧指針始終只想??臻g的頂部,實(shí)現(xiàn)LIFO特性
保存中斷斷點(diǎn)、函數(shù)調(diào)用的的返回值,保存CPU現(xiàn)場等
PC指針和SP指針的使用示例:最初PC指針指向mov 指令,進(jìn)行下一次跳轉(zhuǎn)(執(zhí)行jmp)指令之前會(huì)進(jìn)行現(xiàn)場保存,從SP指針?biāo)傅奈恢瞄_始,將數(shù)據(jù)保存在??臻g,SP指針依次移動(dòng),這里還有一個(gè)BP指針(基址指針),用于保存上一次SP的值,則此時(shí)BP與SP之間保存的就是指令跳轉(zhuǎn)前的現(xiàn)場,當(dāng)函數(shù)返回,或者中斷執(zhí)行完畢后,就會(huì)從該段地址進(jìn)行現(xiàn)場恢復(fù),SP指針指向其原來的值。
處理器的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)行讀寫操作。
通過具體的硬件設(shè)計(jì),可以使得地址總線上的值在某個(gè)范圍內(nèi),片選信號(hào)為真,即:使能連接設(shè)備從而讀取相應(yīng)地址中的數(shù)據(jù)。
片選信號(hào)由地址線產(chǎn)生。
地址映射示例:
如下面的地址0XFFFF1234,這是一個(gè)32位地址,如何映射到只有16位的地址空間??
通常的做法,使用高位地址通過&&運(yùn)算產(chǎn)生一個(gè)片選信號(hào),然后直接通過低位地址訪問實(shí)際的內(nèi)存空間。
處理器上電之后,PC指針固話了一個(gè)默認(rèn)值(通常是0),PC指針的默認(rèn)值用于決定第一條執(zhí)行的指令。然后接著執(zhí)行后續(xù)的指令,整個(gè)過程如下圖所示。
啟動(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í)例分析:
對于S3C6410,這款芯片,其啟動(dòng)過程的設(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)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)站題目:深入淺出處理器(上)_基本概念-創(chuàng)新互聯(lián)
網(wǎng)頁網(wǎng)址:http://jinyejixie.com/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)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容