chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

從單片機(jī)轉(zhuǎn)到ARM —— ARM架構(gòu)基礎(chǔ)知識(shí)小結(jié)

GReq_mcu168 ? 來(lái)源:玩轉(zhuǎn)單片機(jī) ? 2020-08-05 10:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單片機(jī)轉(zhuǎn)到ARM,主要需要學(xué)習(xí)ARM的架構(gòu),ARM相比單片機(jī)多了一些外設(shè)和總線。在僅僅是裸奔的情況下,如果熟悉了ARM架構(gòu),那么可以認(rèn)為使用任何ARM架構(gòu)的芯片和用單片機(jī)將沒(méi)有區(qū)別。 ARM架構(gòu)之所以更復(fù)雜,當(dāng)然是為了跑更快以及更好地支持片上系統(tǒng),所以在某種程度上來(lái)說(shuō)對(duì)片上系統(tǒng)不是很了解的話那對(duì)于ARM架構(gòu)的理解也不會(huì)那么深。

ARM架構(gòu)基礎(chǔ)知識(shí)小結(jié)

通用寄存器

R13通常被用作棧指針,進(jìn)入異常模式時(shí),可以將需要使用的寄存器保存在R13所指的棧中;當(dāng)退出異常程序時(shí),將保存在R13所指的棧中的寄存器值彈出。R14又被稱為連接寄存器(LinkRegister,LR),即PC的返回值。R15又被記作PC。ARM指令是字對(duì)齊的,PC的值的第0位和第1位總為0。也就是說(shuō)是32位對(duì)齊。

就Cortex-M3來(lái)說(shuō),擁有R0-R15的寄存器組。其中R13作為堆棧指針SP。SP有兩個(gè),分別為R13(MSP)和R13(PSP)即主堆棧指針(MSP)和進(jìn)程堆棧指針(PSP),但在同一時(shí)刻只能有一個(gè)可以看到,這也就是所謂的“banked”寄存器。這些寄存器都是32位的。

ARM的各個(gè)模式

ARM有以下7種模式:

用戶模式(User,usr) :正常程序執(zhí)行的模式

快速中斷模式(FIQ,fiq) :用于高速數(shù)據(jù)傳輸和通道處理

外部中斷模式(IRQ,irq) :用于通常的中斷處理

特權(quán)模式(Supervisor,svc) :供操作系統(tǒng)使用的一種保護(hù)模式

數(shù)據(jù)訪問(wèn)中止模式(Abort,abt) :用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù)

未定義指令中止模式(Undefined,und):用于支持通過(guò)軟件以及硬件的協(xié)處理器

系統(tǒng)模式(System,sys) :用于運(yùn)行特權(quán)級(jí)的操作系統(tǒng)任務(wù)

其中除了用戶模式之外都稱之為特權(quán)模式(privileged modes),而在privileged modes中除了系統(tǒng)模式其它都稱為異常模式,即exception mode,意思是“這模式什么時(shí)候會(huì)發(fā)生不好說(shuō)……”,比如說(shuō)來(lái)了個(gè)外部中斷也會(huì)進(jìn)入異常模式,但是此時(shí)系統(tǒng)是運(yùn)行完好的。 其中SVC用于在系統(tǒng)剛啟動(dòng)的啟動(dòng)文件BOOT程序中,跳轉(zhuǎn)到kernel之前必須為SVC,SVC具有最高權(quán)限,可以對(duì)任何寄存器進(jìn)行操作。在裸機(jī)程序中我們有時(shí)候會(huì)一直處于SVC模式下。 關(guān)于什么時(shí)候會(huì)進(jìn)入用戶模式或者系統(tǒng)模式,比如進(jìn)入linux kernel之后會(huì)設(shè)置成sys模式,比如任務(wù)調(diào)度等等都會(huì)在sys模式中,而執(zhí)行用戶編寫(xiě)的應(yīng)用程序時(shí),系統(tǒng)是處于usr模式中。以上需要在linux中找出證據(jù)驗(yàn)證。 其中FIQ、IRQ為中斷模式,有中斷發(fā)生時(shí)會(huì)進(jìn)入FIQ模式或者IRQ模式,至于到底是進(jìn)入哪個(gè)模式是由開(kāi)發(fā)者設(shè)定的。理論上FIQ模式的響應(yīng)速度比IRQ模式要快。 其中abt模式通常發(fā)生于在訪問(wèn)地址沒(méi)有對(duì)齊時(shí)的情況,此時(shí)會(huì)跳轉(zhuǎn)到abt所屬的中斷向量地址中去。und模式應(yīng)該是取到指令之后發(fā)現(xiàn)指令不能用,此時(shí)會(huì)跳轉(zhuǎn)到abt所屬的中斷向量地址中去。

啟動(dòng)文件

這一部分只要了解一下協(xié)處理器CP15的相關(guān)作用以及ARM或者THUMB匯編再看一下網(wǎng)上的例程以及解釋?xiě)?yīng)該不難理解。在啟動(dòng)文件中我們可以做任何事情,但是通常我們可以做這些:改變程序大小端排序,關(guān)閉看門(mén)狗,屏蔽中斷,設(shè)置各個(gè)時(shí)鐘,設(shè)置從SLEEP或者IDLE啟動(dòng)時(shí)的程序,初始化SDRAM,設(shè)置各模式指向的堆棧,設(shè)置好中斷向量表,判斷是從NOR還是NAND FLASH啟動(dòng),將文件拷到SDRAM中,運(yùn)行Main。以上也說(shuō)明了為什么需要一個(gè)匯編寫(xiě)的啟動(dòng)文件,設(shè)置各個(gè)模式下的SP指針以及初始化中斷向量的跳轉(zhuǎn)(ARM的中斷較多設(shè)置也較靈活)也只有匯編干比較合適了。甚至在SOC(片上系統(tǒng))中每個(gè)任務(wù)都有自己的堆棧,所以改變堆棧指針的那一部分程序也是放在匯編里做的??傊私鈫?dòng)文件是一個(gè)非常好的切入點(diǎn)。

MMU

關(guān)于MMU,因?yàn)槎喾N存儲(chǔ)設(shè)備的物理地址不同以及不連貫性,將其地址安放在合理的連續(xù)虛擬地址上是很必要的,所以MMU出現(xiàn)了。MMU即將不同的地址放在合適的虛擬地址中,以便調(diào)度。比如要跑LINUX必須要有MMU的支持才行。

ARM920T的三種類型地址

虛擬地址(VA)、變換后的虛擬地址(MVA)、物理地址(PA)

以下是一個(gè)當(dāng)一個(gè)指令被請(qǐng)求時(shí)地址所做操作的例子:

1.指令VA(IVA)被ARM920T發(fā)出

2. 它被ProcID(當(dāng)前進(jìn)程所在的進(jìn)程空間塊的編號(hào))轉(zhuǎn)換成指令MVA(IMVA),指令CACHE(ICACHE)和MMU看到的就是IMVA。

3. 如果在IMMU上的保護(hù)模塊確認(rèn)IMVA不會(huì)被中斷,并且IMVA標(biāo)簽也在ICACHE中,指令數(shù)據(jù)會(huì)讀出并返回到ARM920T內(nèi)核中。

4. 如果IMVA tag并不在ICACHE中,那么IMMU會(huì)產(chǎn)生出一個(gè)指令PA(IPA)。地址會(huì)給AMBA總線接口以獲取外部數(shù)據(jù)。

如何使用FCSEPID

920T內(nèi)核發(fā)出的地址都是0-32MB的范圍,4GB的逆序空間被分成了1238個(gè)進(jìn)程空間塊,每個(gè)進(jìn)程空間塊大小為32MB。每個(gè)進(jìn)程空間塊中可以包含一個(gè)進(jìn)程。系統(tǒng)128個(gè)進(jìn)程空間塊的編號(hào)0-127,編號(hào)為I的進(jìn)程空間塊中的進(jìn)程實(shí)際使用的虛擬地址空間為(I*0x02000000)到(I*0x02000000+0x01FFFFFF)。所以VA通常高7位都為0時(shí) MVA = VA |(PID << 25)。    當(dāng)VA高7位不為0時(shí) MVA = VA,這種VA是本進(jìn)程用于訪問(wèn)別的進(jìn)程中的數(shù)據(jù)和指令的虛擬地址,注意這時(shí)被訪問(wèn)的進(jìn)程標(biāo)識(shí)符不能為0。

注意:當(dāng)FCSE_PID為0時(shí),即當(dāng)前復(fù)位,則當(dāng)前920T和CACHES及MMU之間是平面映射的關(guān)系(很巧妙:))。

TLB是什么

TLB即translate look-aside buffer,快表就是存儲(chǔ)幾個(gè)常用的頁(yè)表,以提高系統(tǒng)運(yùn)行的速度。在更新頁(yè)表之前要使其無(wú)效,其操作的寄存器為R8,R8為只寫(xiě)寄存器,如果讀它則會(huì)造成不可估計(jì)的后果。

AP賦值表

DOMAIN的賦值則是在C3中的,32bit共有16個(gè)域,每個(gè)域分兩個(gè)bit,這兩個(gè)bit控制當(dāng)前域的權(quán)限。而以上四個(gè)bit是為了選擇0-15個(gè)域的其中一個(gè)。

關(guān)于C、B賦值

以下有關(guān)于兩種寫(xiě)緩存,寫(xiě)通以及寫(xiě)回。寫(xiě)回法是指CPU在執(zhí)行寫(xiě)操作時(shí),被寫(xiě)的數(shù)據(jù)只寫(xiě)入cache,不寫(xiě)入主存,僅當(dāng)需要替換時(shí),才把已經(jīng)修改的cache塊寫(xiě)回到主存中。寫(xiě)通法是指CPU在執(zhí)行寫(xiě)操作時(shí),必須把數(shù)據(jù)同時(shí)寫(xiě)入cache和主存。

AHB/APB是什么

AHB(AdvancedHigh performance Bus),主要用于系統(tǒng)高性能、高時(shí)速速率模塊間通信。APB(AdvancedPeripheral Bus),主要用于慢速片上外設(shè)與ARM核的通訊。AHB私有外設(shè)總線,只用于CM3內(nèi)部的AHB外設(shè),它們是:NVIC,F(xiàn)PB,,DWT和ITM。APB私有外設(shè)總線,既用于CM3內(nèi)部的APB設(shè)備,也用于外部設(shè)備(這里的“外部”是對(duì)內(nèi)核而言)。CM3允許器件制造商再添加一些片上APB外設(shè)到APB私有總線上,它們通過(guò)APB接口來(lái)訪問(wèn)。

四種耗電模式

NORMAL、SLOW、IDLE、SLEEP先配置主PLL MPLL給CPU用。在上電復(fù)位的時(shí)候PLL是不穩(wěn)定的,所以在PLLCON在被軟件配置之前Fin直接是跳過(guò)MPll給FCLK,所以不配置PLLCON也是可以正常工作。即使工作在正常狀態(tài)下,也可以對(duì)MPLLCON進(jìn)行配置,配置之后等待PLL Lock-time過(guò)后內(nèi)部各模塊的CLK才可以被正常供應(yīng)。

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

    關(guān)注

    6071

    文章

    45257

    瀏覽量

    660111
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9451

    瀏覽量

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

    關(guān)注

    31

    文章

    5495

    瀏覽量

    127799

原文標(biāo)題:從單片機(jī)轉(zhuǎn)到ARM —— ARM架構(gòu)基礎(chǔ)知識(shí)小結(jié)

文章出處:【微信號(hào):mcu168,微信公眾號(hào):硬件攻城獅】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    什么是ARM架構(gòu)?你需要知道的一切

    智能手機(jī)到工業(yè)邊緣計(jì)算機(jī),ARM?架構(gòu)為全球數(shù)十億臺(tái)設(shè)備提供動(dòng)力。ARM?以其效率優(yōu)先的設(shè)計(jì)和靈活的許可模式而聞名,已迅速移動(dòng)處理器擴(kuò)展
    的頭像 發(fā)表于 09-11 14:48 ?502次閱讀
    什么是<b class='flag-5'>ARM</b><b class='flag-5'>架構(gòu)</b>?你需要知道的一切

    一文了解Arm神經(jīng)超級(jí)采樣 (Arm Neural Super Sampling, Arm NSS) 深入探索架構(gòu)、訓(xùn)練和推理

    本文將從訓(xùn)練、網(wǎng)絡(luò)架構(gòu)到后處理和推理等方面,深入探討 Arm 神經(jīng)超級(jí)采樣 (Arm Neural Super Sampling, Arm NSS) 的工作原理,希望為機(jī)器學(xué)習(xí) (ML
    的頭像 發(fā)表于 08-14 16:11 ?2245次閱讀

    ARM入門(mén)學(xué)習(xí)方法分享

    架構(gòu)。學(xué)習(xí)ARM的開(kāi)始可以學(xué)習(xí)RISC和CISC架構(gòu)基礎(chǔ)知識(shí)開(kāi)始。 二、學(xué)習(xí)匯編語(yǔ)言:ARM
    發(fā)表于 07-23 10:21

    一文回顧 Arm架構(gòu) 40 年的創(chuàng)新歷程

    1980 年代為 BBC Micro 打造的低功耗 ARM1 處理器,到如今的人工智能 (AI) 設(shè)備,Arm 架構(gòu)始終立于世界上最具變革性技術(shù)的核心。40 年來(lái),
    的頭像 發(fā)表于 07-09 18:41 ?2262次閱讀
    一文回顧 <b class='flag-5'>Arm</b><b class='flag-5'>架構(gòu)</b> 40 年的創(chuàng)新歷程

    同一水平的 RISC-V 架構(gòu)的 MCU,和 ARM 架構(gòu)的 MCU 相比,運(yùn)行速度如何?

    ARM 架構(gòu)與 RISC-V 架構(gòu)的 MCU 在同一性能水平下的運(yùn)行速度對(duì)比,需架構(gòu)設(shè)計(jì)原點(diǎn)、指令集特性及實(shí)際測(cè)試數(shù)據(jù)展開(kāi)剖析。以
    的頭像 發(fā)表于 07-02 10:29 ?928次閱讀
    同一水平的 RISC-V <b class='flag-5'>架構(gòu)</b>的 MCU,和 <b class='flag-5'>ARM</b> <b class='flag-5'>架構(gòu)</b>的 MCU 相比,運(yùn)行速度如何?

    圖解單片機(jī)功能與應(yīng)用(完整版)

    基礎(chǔ)知識(shí)的介紹出發(fā),圖文并茂,直觀、系統(tǒng)地介紹了單片機(jī)的內(nèi)部結(jié)構(gòu)、工作原理和應(yīng)用技巧。全書(shū)分為10章,內(nèi)容包括51單片機(jī)編程資源圖解、51單片機(jī)
    發(fā)表于 06-16 16:52

    ARM Mali GPU 深度解讀

    ARM Mali GPU 深度解讀 ARM Mali 是 Arm 公司面向移動(dòng)設(shè)備、嵌入式系統(tǒng)和基礎(chǔ)設(shè)施市場(chǎng)設(shè)計(jì)的圖形處理器(GPU)IP 核,憑借其異構(gòu)計(jì)算架構(gòu)、能效優(yōu)化和生態(tài)協(xié)同,
    的頭像 發(fā)表于 05-29 10:12 ?2308次閱讀

    Arm 公司面向 PC 市場(chǎng)的 ?Arm Niva? 深度解讀

    :異構(gòu)集成與 AI 優(yōu)化 Arm Niva 基于 ? Armv9.2 架構(gòu) ? 設(shè)計(jì),整合了 Cortex-X 超大核、Cortex-A 高效核及
    的頭像 發(fā)表于 05-29 09:56 ?1146次閱讀

    Arm 公司面向移動(dòng)端市場(chǎng)的 ?Arm Lumex? 深度解讀

    子系統(tǒng)(CSS)? ? 在移動(dòng)端的落地形態(tài),Lumex 旨在通過(guò)高度集成化的軟硬件方案,解決移動(dòng)設(shè)備在 AI 性能、能效比與開(kāi)發(fā)效率上的挑戰(zhàn)。以下技術(shù)架構(gòu)、性能突破、應(yīng)用場(chǎng)景、生態(tài)系統(tǒng)及戰(zhàn)略價(jià)值展開(kāi)分析: 一、技術(shù)架構(gòu):異構(gòu)計(jì)
    的頭像 發(fā)表于 05-29 09:54 ?3850次閱讀

    Arm 公司面向汽車(chē)市場(chǎng)的 ?Arm Zena? 深度解讀

    汽車(chē)市場(chǎng)的落地形態(tài),Zena 旨在解決汽車(chē)智能化轉(zhuǎn)型中的算力需求、開(kāi)發(fā)效率與功能安全挑戰(zhàn)。以下技術(shù)架構(gòu)、性能優(yōu)勢(shì)、應(yīng)用場(chǎng)景、生態(tài)系統(tǒng)及戰(zhàn)略意義展開(kāi)分析: 一、技術(shù)架構(gòu):異構(gòu)集成與功能安全強(qiáng)化
    的頭像 發(fā)表于 05-29 09:51 ?1827次閱讀

    Arm架構(gòu)何以成為現(xiàn)代計(jì)算的基礎(chǔ)

    2025 年 4 月,Arm 架構(gòu)迎來(lái)了問(wèn)世 40 周年。這個(gè)始于英國(guó)劍橋一隅、懷揣雄心壯志的項(xiàng)目,如今已成為全球廣泛采用的計(jì)算架構(gòu)傳感器、智能手機(jī)、筆記本電腦,到汽車(chē)、數(shù)據(jù)中心等
    的頭像 發(fā)表于 05-20 10:02 ?743次閱讀

    Arm助力開(kāi)發(fā)者加速遷移至Arm架構(gòu)云平臺(tái) Arm云遷移資源分享

    隨著基于 Arm 架構(gòu)的云實(shí)例日益擴(kuò)展,越來(lái)越多的用戶正從傳統(tǒng)平臺(tái)遷移至 Arm 平臺(tái)上。
    的頭像 發(fā)表于 04-09 18:23 ?920次閱讀

    Arm推出GitHub Copilot新擴(kuò)展程序,助力快速遷移至Arm架構(gòu)服務(wù)器

    工具之一,此次推出的擴(kuò)展程序能讓數(shù)百萬(wàn)Copilot用戶更容易地訪問(wèn)Arm?架構(gòu)的技術(shù),并為開(kāi)發(fā)者提供更友好的體驗(yàn)。此外,此次發(fā)布亦首次為全球開(kāi)發(fā)者免費(fèi)提供了完整的
    的頭像 發(fā)表于 03-04 16:07 ?765次閱讀
    <b class='flag-5'>Arm</b>推出GitHub Copilot新擴(kuò)展程序,助力快速遷移至<b class='flag-5'>Arm</b><b class='flag-5'>架構(gòu)</b>服務(wù)器

    單片機(jī)Debug工具性能對(duì)比 單片機(jī)調(diào)試常用命令

    。以下是對(duì)單片機(jī)調(diào)試工具性能的簡(jiǎn)要對(duì)比以及一些常用的調(diào)試命令。 單片機(jī)Debug工具性能對(duì)比 Keil uVision 性能 :Keil uVision 是一款功能強(qiáng)大的集成開(kāi)發(fā)環(huán)境(IDE),支持多種單片機(jī),特別是
    的頭像 發(fā)表于 12-19 09:56 ?1930次閱讀

    Arm全面設(shè)計(jì)助力Arm架構(gòu)生態(tài)發(fā)展

    Arm 控股有限公司(納斯達(dá)克股票代碼:ARM,以下簡(jiǎn)稱 Arm)近日分享了Arm 全面設(shè)計(jì) (Arm Total Design) 生態(tài)項(xiàng)目
    的頭像 發(fā)表于 10-21 09:58 ?1043次閱讀