整理出:Huanggong參考:Wikipedia參考地址:https://zh.wikipedia.org/wiki/ARM體系結(jié)構(gòu)每個(gè)人都應(yīng)該知道STM32,Cortex-M3,ARMv8-M與ARM相關(guān),但是它們可能無法區(qū)分它們是什么關(guān)系,或者究竟是什么。
1.概述ARMv8-M:它是一種ARM體系結(jié)構(gòu)。
ARM體系結(jié)構(gòu)分為:ARMv1,ARMv2……ARMv8。
而ARMv8分為:ARMv8-A,ARMv8-R,ARMv8-M。
Cortex-M3:它是ARM處理器核心,也可以理解為ARM處理器家族的成員。
ARM處理器核心分為:經(jīng)典核心和Cortex核心。
傳統(tǒng)核心:ARM7,ARM9等。
Cortex核心:Cortex-A,Cortex-R,Cortex-M等。
STM32:是ARM核心處理器芯片。
STM32的大多數(shù)是Cortex-M內(nèi)核,少數(shù)包含Cortex-A7(例如STM32MP)。
如圖所示:實(shí)際上,有許多內(nèi)容可以細(xì)分。
除了這些,還有一些通用的內(nèi)容,例如ARM指令集,Thumb-2指令集等。
以上是一般內(nèi)容,下面將進(jìn)一步描述一些細(xì)節(jié)。
2.體系結(jié)構(gòu)自1995年以來,“ ARM體系結(jié)構(gòu)參考手冊”已被提出。
是ARM文檔的主要來源,提供有關(guān)ARM處理器體系結(jié)構(gòu)和指令集,不同接口以及所有ARM處理器支持的實(shí)現(xiàn)(例如指令語義)的信息。
詳細(xì)信息可能有所不同。
該架構(gòu)隨著時(shí)間的推移而發(fā)展,并始于Cortex系列的核心。
存在三種“配置”。
定義如下:配置:Cortex-A系列“嵌入式”配置:Cortex-R系列“微處理器”配置:ARM Cortex-M系列。
每種配置都允許體系結(jié)構(gòu)的子集。
例如,用于ARMv6-M配置(使用Cortex M0 / M0 + / M1)的ARMv7-M體系結(jié)構(gòu)的子集(支持更少的指令)。
3. CPU模式在任何時(shí)候,CPU只能處于特定模式,但是由于外部事件(中斷)或編程,可以切換模式。
用戶模式:僅非特權(quán)模式。
系統(tǒng)模式:只能進(jìn)入特權(quán)模式,無例外。
它只能通過執(zhí)行一條顯式寫入CPSR的模式位的指令來輸入。
(Svc)模式:復(fù)位CPU或執(zhí)行SWI指令時(shí)進(jìn)入的特權(quán)模式。
中止模式:發(fā)生預(yù)讀中斷或數(shù)據(jù)中斷異常時(shí)進(jìn)入的特權(quán)模式。
未定義模式:發(fā)生未定義指令異常時(shí)進(jìn)入的特權(quán)模式。
干預(yù)模式:處理器接受IRQ干預(yù)時(shí)進(jìn)入的特權(quán)模式。
快速干預(yù)模式:處理器接受IRQ干預(yù)時(shí)進(jìn)入的特權(quán)模式。
Hyp模式:armv-7a提供了由硬件虛擬化為cortex-A15處理器引入的管理模式。
4. ARM授權(quán)方法ARM不依賴于自己的設(shè)計(jì)來制造或銷售CPU,而是將處理器體系結(jié)構(gòu)許可給有興趣的制造商。
標(biāo)題中的STM32是由ARM生產(chǎn)的處理器,該處理器由Cortex-M內(nèi)核授權(quán)給ST。
ARM提供了各種許可條款,包括價(jià)格和發(fā)布等項(xiàng)目。
對于許可方,ARM提供了ARM內(nèi)核的集成硬件描述,包括完整的軟件開發(fā)工具(編譯器,調(diào)試器,SDK),以及銷售包含ARM CPU的硅芯片的權(quán)利。
許多半導(dǎo)體公司持有ARM許可證:Atmel,ST,NXP,TI,IBM等。
在知識產(chǎn)權(quán)行業(yè),ARM被公認(rèn)為是最昂貴的CPU內(nèi)核之一。
包含基本ARM內(nèi)核的單個(gè)客戶產(chǎn)品可能需要最高200,000美元的許可費(fèi)。
而且,如果涉及大量的結(jié)構(gòu)變更,成本可能會超過數(shù)千萬美元。
5. ARM核心時(shí)間表早在1993年,經(jīng)典的ARM7出現(xiàn)了,而現(xiàn)在每個(gè)人都看到了Cortex-A系列處理器。
實(shí)際上,在ARM7之前,還有一些相關(guān)的處理器,有興趣的朋友可以在線了解它。
-結(jié)尾-