學(xué)習(xí)ARM之前,你需要了解這些
最近想學(xué)學(xué)Arm,找了點(diǎn)資料,共享下。
ARM簡(jiǎn)介
1. ARM只賣知識(shí)產(chǎn)權(quán),不賣(物理的,實(shí)質(zhì)的)產(chǎn)品。
2. 全世界100多家公司購(gòu)買了ARM授權(quán),包括三星,Freescale、NXP Semiconductors、STMicroelectronics、Texas Instruments ,Toshiba,Analog Device,atmel,microsemi...具體參看ARM官網(wǎng)
3. ARM processor family:ARM7,ARM9,ARM11,Cortex-A,Cortex-R,Cortex-M,SecurCore
4. 為了清楚地表達(dá)每個(gè)ARM應(yīng)用實(shí)例所使用的指令集,ARM公司定義了6種主要的ARM指令集體系結(jié)構(gòu)版本,以版本號(hào)V1~V6表示
ARM架構(gòu)(或內(nèi)核):ARMv1,ARMv2...到ARMv8,比如ARM9,10架構(gòu)為ARMv5,ARM11為ARMv6,Cortex系列為ARMv7
(Cortex系列又包括Cortex-A,Cortex-R,Cortex-M三系列,架構(gòu)也分別為ARMv7-A,ARMv7-R,ARMv7-M).
最小的64位arm架構(gòu)為ARMv8。。。(細(xì)分的ARMv4T,v5E等就不說(shuō)了)
處理器 內(nèi)核、
ARM7 ARMv4
ARM9,10 ARMv5
ARM11 ARMv6
/////////////////////
CortexA8 ARMv7
64bit ARMv8
5. ARM7是馮 諾依曼體系結(jié)構(gòu),ARM9。ARM11等是哈佛體系結(jié)構(gòu)(數(shù)據(jù)和指令分開(kāi)存儲(chǔ),分開(kāi)訪問(wèn)速度更快)。
6. 其他分類
經(jīng)典 ARM 處理器
ARM11™ 系列 - 基于 ARMv6 架構(gòu)的高性能處理器
ARM9™ 系列 - 基于 ARMv5 架構(gòu)的常用處理器
ARM7™ 系列- 面向普通應(yīng)用的經(jīng)典處理器
ARM 專家處理器
SecurCore™ - 面向高安全性應(yīng)用的處理器。
FPGA Cores - 面向 FPGA 的處理器
ARM Cortex 應(yīng)用程序處理器
ARM Cortex 嵌入式處理器
7. 授權(quán)數(shù):
經(jīng)典 ARM 處理器 許可證數(shù)
ARM11 系列 82
ARM9 系列 271
Cortex 處理器 許可證數(shù)
Cortex-A 86
Cortex-R 22
Cortex-M 123
8. 經(jīng)典 ARM 處理器:ARM7,ARM9,ARM11.
ARM 11 之後分成三類:
Cortex - A/R/M
Cortex - A 系列面向尖端的基于虛擬內(nèi)存的操作系統(tǒng)和用戶應(yīng)用;
Cortex - R 系列針對(duì)實(shí)時(shí)系統(tǒng);
Cortex - M 系列對(duì)微控制器。
9.ARM7,9,11區(qū)別(網(wǎng)友):
ARM7是馮諾依慢結(jié)構(gòu)
ARM9、ARM11是哈佛結(jié)構(gòu),所以性能要高一點(diǎn)。
ARM9和ARM11大多帶內(nèi)存管理器,跑操作系統(tǒng)好一點(diǎn),ARM7適合裸奔。
不跑操作系統(tǒng),價(jià)格低一點(diǎn)的:ARM7、cortex-M3等等。
性價(jià)比高,可跑也可不跑操作系統(tǒng)的:ARM9、cortex-Rx等等。
性能高的,通常要跑操作系統(tǒng)的:ARM10、ARM11、Cortex-A8等等。
成熟的:ARM7\ARM9\ARM11。
發(fā)展趨勢(shì):Cortex-A、Cortex-R、Cortex-M。
其實(shí)弄ARM大多還是在嵌入式領(lǐng)域,不過(guò)現(xiàn)在很多上網(wǎng)本也開(kāi)始ARM了,
估計(jì)與intel競(jìng)爭(zhēng)的時(shí)候快來(lái)了。
2410和2440都是三星公司生產(chǎn)的基于ARM9內(nèi)核的芯,資源上相差不大,
2440多了camara接口,速度要更快一些。上邊講的版本是指內(nèi)核版本,
而各個(gè)公司出的發(fā)行號(hào)又各有不同。比如三星的2440,atmel的9260.
就好比linux的內(nèi)核版本號(hào)與紅帽子的發(fā)行號(hào)不一樣是一個(gè)道理。
10. cortex-m3和ARM11區(qū)別:
cortex-m3的架構(gòu)(ARMv7)比ARM11(ARMv6)的版本高,但是cortex—m系列的芯片的應(yīng)用主要在低端(就相當(dāng)于一個(gè)單片機(jī),不跑OS),
從性能上來(lái)說(shuō)ARM11要比cortex-m3要好不少.
11.
ARM7 工控用的一般是ST公司的如STR73x STM32F系列,三星的44b0,atmel的AT91系列;
ARM9系列一般是三星公司 S3C2440
ARM11 一般是手機(jī)上用的。
處理器以架構(gòu)分類可以這樣分:
(1)ARM7,ARM9屬于v4T或v5E架構(gòu)(2)ARM11屬于v6架構(gòu)
(3)Contex屬于v7架構(gòu)ARM7,ARM9的區(qū)別在于是否有MMU(存儲(chǔ)器管理單元)
或MPU(存儲(chǔ)器保護(hù)單元)架構(gòu)上v5E相比v4T則是在于v5E新加入的增強(qiáng)型DSP
(數(shù)字信號(hào)處理)指令,v4T則是Thumb指令集的加入,
v6架構(gòu)則是開(kāi)始支持SIMD以及Thumb2的問(wèn)世新指令的加入
,增強(qiáng)了處理器的性能或?qū)崟r(shí)性
12. 51單片機(jī)寄存器比較少,指令只有111條;而arm芯片寄存器較多,指令集也多,要掌握它需要耐心和時(shí)間,
所以,為了簡(jiǎn)化嵌入式軟件的編程工作量,生產(chǎn)公司把寄存器的操作搞定,封裝成函數(shù),這就是固件函數(shù)庫(kù)。
比如意法半導(dǎo)體(ST.COM)的《STM32F10xxx固件函數(shù)庫(kù).pdf》。
13. 學(xué)習(xí)arm編程,買開(kāi)發(fā)板的話一般用arm9,arm11太貴(一般2k以上),arm7不能跑操作系統(tǒng)。
比如:三星S3C2440開(kāi)發(fā)板,mini2440開(kāi)發(fā)板
14. ARM開(kāi)發(fā)需要1,硬件(帶arm芯片的開(kāi)發(fā)板),2,下載線或仿真器(J-Link等)及其驅(qū)動(dòng),3.集成開(kāi)發(fā)環(huán)境
ADS(好像用的少了),MDK412-keil( arm收購(gòu)),IAR Embedded Workbench for arm.
15. 常用系列
ST系列 ,NXP系列 , TI系列 ,ATMEL系列,Samsung 系列
先熟悉GPIO,再熟悉串口,中斷,定時(shí)器,flash等,熟悉好具體的外設(shè)操作,然后是stm32里搭建uCos系統(tǒng),Linux系統(tǒng)。
最后以一句話勉勵(lì):
天下事有難易乎?為之,則難者亦易矣;不為,則易者亦難矣。