arm 與 cpu 是什么關(guān)系?且看本文
學(xué)習(xí)ARM裸機(jī),是一件復(fù)雜事情,入門的概念性和基礎(chǔ)性知識(shí)必須要了解到,以便于后面的知識(shí)的理解。
ARM概念
ARM首先是一個(gè)公司,這家公司設(shè)計(jì)CPU并向各個(gè)CPU制造商授權(quán)許可,所以ARM公司是一家CPU設(shè)計(jì)公司。同時(shí),ARM也是ARM公司主導(dǎo)設(shè)計(jì)的CPU系列的簡稱。
ARM版本區(qū)分
ARM版本號(hào)可以分為三類:
· 內(nèi)核版本號(hào),例如ARMv5,ARMv7,ARMv7a,ARMv8a……
· Soc版本號(hào),例如Cortex-A8,Cortex-A9...
· 芯片型號(hào),例如2410,2440,6410,S5PV210...
Soc
Soc是System on Chip的簡寫,即片上系統(tǒng)。Soc主要包括了CPU中央處理器以及各種外設(shè)模塊,CPU和外設(shè)通過集成電路被安置在一個(gè)芯片中。
現(xiàn)在已經(jīng)沒有純粹的CPU了,都是SoC
ARM賣的內(nèi)核其實(shí)就是CPU(當(dāng)然還需要總線),各種外設(shè)是半導(dǎo)體廠商自己添加的。
單片機(jī)和嵌入式的區(qū)別
平臺(tái)區(qū)別:
主流的單片機(jī)平臺(tái)有51,PIC,STM32,AVR,MSP430,
主流的嵌入式平臺(tái)有ARM,PPC,MIPS
資源,價(jià)格,應(yīng)用領(lǐng)域
單片機(jī)片上資源有限,價(jià)格低,應(yīng)用領(lǐng)域大多為小家電,終端設(shè)備。
嵌入式片上資源豐富,價(jià)格高,應(yīng)用領(lǐng)域廣泛,基本可以適用于任何領(lǐng)域。
開發(fā)模式
單片機(jī)一般都是裸機(jī)開發(fā),程序規(guī)模較小,只有在比較高端的芯片上才會(huì)使用RTOS
嵌入式開發(fā)一般都會(huì)使用嵌入式系統(tǒng)
技術(shù)特征
單片機(jī)主要使用C語言和簡單的匯編,而且C語言和標(biāo)準(zhǔn)C略有不同,很少使用C語言的高級(jí)特性,
嵌入式比較復(fù)雜,一般會(huì)進(jìn)行分層設(shè)計(jì)和開發(fā),分為底層,應(yīng)用層,不同的成冊(cè)可能使用不同的開發(fā)語言,例如C++與Java,較多使用C語言的高級(jí)特性
CPU設(shè)計(jì)原理和總線
CPU主要包括運(yùn)算器,控制器,存儲(chǔ)器通過總線與Flash與內(nèi)存連接。
總線就類似于CPU中的道路,數(shù)據(jù)通過總線在CPU和外設(shè)之間傳輸,CPU也通過內(nèi)部總線與SOC中的其他外設(shè)連接,例如UART設(shè)備,內(nèi)部總線由于在芯片內(nèi)部,抗干擾能力強(qiáng),運(yùn)算速度更快。
總線分為兩種,地址總線和數(shù)據(jù)總線:
地址總線用于傳輸?shù)刂罚珻PU通過地址總線尋址,告訴設(shè)備要取的數(shù)據(jù)在哪個(gè)地址中,地址總線的位數(shù)決定了尋址范圍
數(shù)據(jù)總線用于傳輸數(shù)據(jù),CPU通過數(shù)據(jù)總線與外部交換信息,將設(shè)備要的數(shù)據(jù)通過該總線發(fā)送給對(duì)方,數(shù)據(jù)總線的位數(shù)決定了CPU單次通信能交換的信息數(shù)量
總線的速度決定了CPU和外設(shè)互換信息的速度
CPU的地址總線和數(shù)據(jù)總線的位數(shù)可以不同,CPU的位數(shù)就指的是數(shù)據(jù)總線的位數(shù)
32位CPU的尋址范圍是4G所以最多支持4G內(nèi)存,數(shù)據(jù)總線是32位的,那么傳輸一個(gè)int和傳輸一個(gè)char的效率是一樣的。