0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM7和ARM-Cortex的區(qū)別,ARM為什么會(huì)有兩種啟動(dòng)方式?

Q4MP_gh_c472c21 ? 來源:未知 ? 作者:李倩 ? 2018-10-27 11:20 ? 次閱讀

ARM為什么會(huì)有兩種啟動(dòng)方式?ARM7和ARM-Cortex區(qū)別在哪?快速中斷和中斷是怎么回事?

ARM的兩種啟動(dòng)方式 (NAND FLASH. NOR FLASH)為什么會(huì)有兩種啟動(dòng)方式?

這主要是由兩種FLASH 的不同特點(diǎn)決定的。

NAND FLASH 容量大,存儲(chǔ)的單位比特?cái)?shù)據(jù)的成本要低很多,但是要按照特定的時(shí)序?qū)AND FLASH 進(jìn)行讀寫,因此CPU 無法對NAND FLASH 的數(shù)據(jù)進(jìn)行直接尋址,CPU 對NAND FLASH 中數(shù)據(jù)的讀寫是通過專門的 nand flash控制器進(jìn)行的,因此 NAND FLASH 更適合于存儲(chǔ)數(shù)據(jù)。

NOR FLASH 容量小,速度快,對NOR FLASH 進(jìn)行讀寫時(shí),輸入地址,然后給出讀寫信號(hào)即可從數(shù)據(jù)總線上得到數(shù)據(jù),但是價(jià)格要比NAND FLASH 高因此適合做程序存儲(chǔ)器。

綜上所述,NOR FLASH 可以直接連接到arm 的總線上,但是DAND FLASH 需要通過NAND FLASH 控制器與S3S2440相連接。

ARM7和ARM-Cortex的區(qū)別

ARM7:ARMv4架構(gòu),ARM9:ARMv5架構(gòu),ARM11:ARMv6架構(gòu),ARM-Cortex 系列:ARMv7架構(gòu)。

ARM7沒有MMU(內(nèi)存管理單元),只能叫做MCU(微控制器),不能運(yùn)行諸如Linux、WinCE等這些現(xiàn)代的多用戶多進(jìn)程操作系統(tǒng),因?yàn)檫\(yùn)行這些系統(tǒng)需要MMU,才能給每個(gè)用戶進(jìn)程分配進(jìn)程自己獨(dú)立的地址空間。ucOS、ucLinux這些精簡實(shí)時(shí)的RTOS不需要MMU,當(dāng)然可以在ARM7上運(yùn)行。

ARM9、ARM11,是嵌入式CPU(處理器),帶有MMU,可以運(yùn)行諸如Linux等多用戶多進(jìn)程的操作系統(tǒng),應(yīng)用場合也不同于ARM7。

到了ARMv7架構(gòu)的時(shí)候開始以Cortex來命名,并分成Cortex-A、Cortex-R、Cortex-M三個(gè)系列。三大系列分工明確:“A”系列面向尖端的基于虛擬內(nèi)存的操作系統(tǒng)和用戶應(yīng)用;“R”系列針對實(shí)時(shí)系統(tǒng);“M”系列對微控制器。簡單的說Cortex-A系列是用于移動(dòng)領(lǐng)域的CPU,Cortex-R和Cortex-M系列是用于實(shí)時(shí)控制領(lǐng)域的MCU。

所以看上去ARM7跟Cortex-M很像,因?yàn)樗麄兌际荕CU,但確是不同代不同架構(gòu)的MCU(Cortex-M比ARM7高了三代!),所以性能也有很大的差距。此外,Cortex-M系列還細(xì)分為M0、M3、M4和超低功耗的M0+,用戶依據(jù)成本、性能、功耗等因素來選擇芯片。

想必現(xiàn)在肯定知道了ARM7、Cortex-M的區(qū)別,不過小編還是花了點(diǎn)時(shí)間整理在此,可以幫助后來的初學(xué)者搞明白這些基本的概念性問題。

ARM 之FIQ(快速中斷) IRQ(中斷)

IRQ,F(xiàn)IQ定義: 這就是個(gè)普通中斷,當(dāng)我們程序定義了該中斷,并且在程序運(yùn)行的時(shí)候產(chǎn)生了IRQ中斷,則此時(shí)的芯片是這樣運(yùn)行的------中斷處理器吧利用IRQ請求線來高速ARM,ARM就知道有個(gè)IRQ中斷來了,然后ARM切換到IRQ模式運(yùn)行。類似的如果該中斷設(shè)置為FIQ,那么當(dāng)該中斷產(chǎn)生的時(shí)候,中斷處理器通過FIQ請求線告訴ARM,ARM就知道有個(gè)FIQ中斷來了,然后切換到FIQ模式運(yùn)行。

那么問題來啦,為何要有這兩個(gè)中斷,或者說為何分成這兩種中斷?原因很簡單,速度不同,F(xiàn)IQ 也就是快速中斷的速度快,那么問題又來了,為何就FIQ速度快???

原因:

1:ARM的FIQ模式提供了更多的banked寄存器,r8到r14還有SPSR,而IRQ模式就沒有那么多,R8,R9,R10,R11,R12對應(yīng)的banked的寄存器就沒有,這就意味著在ARM的IRQ模式下,中斷處理程序自己要保存R8到R12這幾個(gè)寄存器,然后退出中斷處理時(shí)程序要恢復(fù)這幾個(gè)寄存器,而FIQ模式由于這幾個(gè)寄存器都有banked寄存器,模式切換時(shí)CPU自動(dòng)保存這些值到banked寄存器,退出FIQ模式時(shí)自動(dòng)恢復(fù),所以這個(gè)過程FIQ比IRQ快.不要小看這幾個(gè)寄存器,ARM在編譯的時(shí)候,如果你FIQ中斷處理程序足夠用這幾個(gè)獨(dú)立的寄存器來運(yùn)作,它就不會(huì)進(jìn)行通用寄存器的壓棧,這樣也省了一些時(shí)間。

2:FIQ比IRQ有更高優(yōu)先級(jí),如果FIQ和IRQ同時(shí)產(chǎn)生,那么FIQ先處理。

3:在symbian系統(tǒng)里,當(dāng)CPU處于FIQ模式處理FIQ中斷的過程中,預(yù)取指令異常,未定義指令異常,軟件中斷全被禁止,所有的中斷被屏蔽。所以FIQ就會(huì)很快執(zhí)行,不會(huì)被其他異?;蛘咧袛啻驍啵运直菼RQ快了。而IRQ不一樣,當(dāng)ARM處理IRQ模式處理IRQ中斷時(shí),如果來了一個(gè)FIQ中斷請求,那正在執(zhí)行的IRQ中斷處理程序會(huì)被搶斷,ARM切換到FIQ模式去執(zhí)行這個(gè)FIQ,所以FIQ比IRQ快多了。

4:另外FIQ的入口地址是0x1c,IRQ的入口地址是0x18。寫過完整匯編系統(tǒng)的都比較明白這點(diǎn)的差別,18只能放一條指令,為了不與1C處的FIQ沖突,這個(gè)地方只能跳轉(zhuǎn),而FIQ不一樣,1C以后沒有任何中斷向量表了,這樣可以直接在1C處放FIQ的中斷處理程序,由于跳轉(zhuǎn)的范圍限制,至少少了一條跳轉(zhuǎn)指令。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    134

    文章

    9027

    瀏覽量

    366476
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    16103

    瀏覽量

    177071
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5294

    瀏覽量

    119814

原文標(biāo)題:ARM為什么會(huì)有兩種啟動(dòng)方式?ARM7和ARM-Cortex區(qū)別在哪?快速中斷和中斷是怎么回事?

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    低成本ARM 32位MCU,開發(fā)人員面臨的兩種選擇

    要使用低成本的 32位微控制器,開發(fā)人員面臨兩種選擇,基于Cortex-M3內(nèi)核或者ARM7TDMI內(nèi)核的處理器。如何做出選擇?選擇標(biāo)準(zhǔn)又是什么?本文主要介紹了ARM
    發(fā)表于 05-28 17:11 ?3488次閱讀

    ARMcortex區(qū)別

    弱弱詢問下,ARM7,ARM9,cortex-m3,cortex-m4,cortex-a8的區(qū)別
    發(fā)表于 07-01 23:02

    ARM7、ARM9、ARM11、ARM-Cortex有何關(guān)系

    1. ARM7、ARM9、ARM11、ARM-Cortex的關(guān)系 ARM7:ARMv4架構(gòu),ARM
    發(fā)表于 07-01 07:29

    ARM7、ARM9、ARM11、ARM-Cortex有什么關(guān)系?

    ARM7、ARM9、ARM11、ARM-Cortex有什么關(guān)系?ARM7,ARM9,
    發(fā)表于 07-01 07:50

    ARM7ARM9、ARM11、ARM-Cortex的關(guān)系及形象

    ARM7:ARMv4架構(gòu),ARM9:ARMv5架構(gòu),ARM11:ARMv6架構(gòu),ARM-Cortex 系列:ARMv7架構(gòu)
    發(fā)表于 07-01 07:50

    ARM7/ARM9內(nèi)核的控制器復(fù)位

    相對于ARM上一代的主流ARM7/ARM9內(nèi)核架構(gòu),新一代Cortex內(nèi)核架構(gòu)的啟動(dòng)方式有了比較
    發(fā)表于 08-20 06:32

    ARM7、ARM9、cortex-m3、cortex-m4與cortex-a8的區(qū)別在哪

    ARM7、ARM9、ARM11與ARM-Cortex有何關(guān)系?ARM7、ARM9、
    發(fā)表于 10-21 06:27

    請問ARM7/ARM9/ARM11/ARM-Cortex之間是什么關(guān)系?

    請問ARM7/ARM9/ARM11/ARM-Cortex之間是什么關(guān)系?
    發(fā)表于 10-25 06:15

    ARM7Cortex-M3比較

    比較項(xiàng)目 ARM7 Cortex-M3
    發(fā)表于 06-07 18:03 ?2784次閱讀

    ARM7在嵌入式應(yīng)用中啟動(dòng)

    ARM7在嵌入式應(yīng)用中啟動(dòng)程序的實(shí)現(xiàn),有需要的下來看看。
    發(fā)表于 01-13 17:23 ?11次下載

    ARM9和ARM7的比較及優(yōu)化

    ARM9和ARM7的比較及優(yōu)化
    發(fā)表于 10-31 09:46 ?4次下載
    <b class='flag-5'>ARM</b>9和<b class='flag-5'>ARM7</b>的比較及優(yōu)化

    選擇ARM處理器,ARM7還是Cortex-M3

    要使用低成本的32位處理器,開發(fā)人員面臨兩種選擇,基于Cortex-M3內(nèi)核或者ARM7TDMI內(nèi)核的處理器。如何做出選擇?選擇標(biāo)準(zhǔn)又是什么?本文主要介紹了ARM
    發(fā)表于 12-04 14:22 ?557次閱讀

    初學(xué)者是選ARM7還是ARM9?uCOS還是Linux?

    本文首先介紹了ARM7ARM9和uCOS及Linux這四者的概念,其次闡述了ARM7ARM9的區(qū)別,最后介紹了初學(xué)者是選
    發(fā)表于 05-25 11:16 ?7628次閱讀

    ARM Cortex-M3內(nèi)核微控制器與ARM7區(qū)別資料下載

    電子發(fā)燒友網(wǎng)為你提供ARM Cortex-M3內(nèi)核微控制器與ARM7區(qū)別資料下載的電子資料下載,更有其他相關(guān)的電路圖、源代碼、課件教程、中文資料、英文資料、參考設(shè)計(jì)、用戶指南、解決方
    發(fā)表于 04-17 08:45 ?15次下載
    <b class='flag-5'>ARM</b> <b class='flag-5'>Cortex</b>-M3內(nèi)核微控制器與<b class='flag-5'>ARM7</b>的<b class='flag-5'>區(qū)別</b>資料下載

    STM32與ARM7、ARM9、ARM11

    目錄:一、STM32與ARM的關(guān)系1、ARM公司2、意法半導(dǎo)體二、STM32與ARM7、ARM9、ARM11的
    發(fā)表于 11-25 20:36 ?25次下載
    STM32與<b class='flag-5'>ARM7</b>、<b class='flag-5'>ARM</b>9、<b class='flag-5'>ARM</b>11