日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

從單片機轉到ARM —— ARM架構基礎知識小結

GReq_mcu168 ? 來源:玩轉單片機 ? 2020-08-05 10:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

單片機轉到ARM,主要需要學習ARM的架構,ARM相比單片機多了一些外設和總線。在僅僅是裸奔的情況下,如果熟悉了ARM架構,那么可以認為使用任何ARM架構的芯片和用單片機將沒有區(qū)別。 ARM架構之所以更復雜,當然是為了跑更快以及更好地支持片上系統(tǒng),所以在某種程度上來說對片上系統(tǒng)不是很了解的話那對于ARM架構的理解也不會那么深。

ARM架構基礎知識小結

通用寄存器

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

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

ARM的各個模式

ARM有以下7種模式:

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

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

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

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

數據訪問中止模式(Abort,abt) :用于虛擬存儲及存儲保護

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

系統(tǒng)模式(System,sys) :用于運行特權級的操作系統(tǒng)任務

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

啟動文件

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

MMU

關于MMU,因為多種存儲設備的物理地址不同以及不連貫性,將其地址安放在合理的連續(xù)虛擬地址上是很必要的,所以MMU出現了。MMU即將不同的地址放在合適的虛擬地址中,以便調度。比如要跑LINUX必須要有MMU的支持才行。

ARM920T的三種類型地址

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

以下是一個當一個指令被請求時地址所做操作的例子:

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

2. 它被ProcID(當前進程所在的進程空間塊的編號)轉換成指令MVA(IMVA),指令CACHE(ICACHE)和MMU看到的就是IMVA。

3. 如果在IMMU上的保護模塊確認IMVA不會被中斷,并且IMVA標簽也在ICACHE中,指令數據會讀出并返回到ARM920T內核中。

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

如何使用FCSEPID

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

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

TLB是什么

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

AP賦值表

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

關于C、B賦值

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

AHB/APB是什么

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

四種耗電模式

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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6078

    文章

    45589

    瀏覽量

    673937
  • ARM
    ARM
    +關注

    關注

    135

    文章

    9589

    瀏覽量

    393778
  • 寄存器
    +關注

    關注

    31

    文章

    5620

    瀏覽量

    130451

原文標題:從單片機轉到ARM —— ARM架構基礎知識小結

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    小白也能聽懂的單片機知識路徑

    已經掌握了51單片機基礎知識,包括編程邏輯、硬件接口等。這將有助于你更快地適應STM32的學習節(jié)奏。 STM32學習要點: 硬件平臺:選擇合適的STM32開發(fā)板,了解其硬件配置和特性。 開發(fā)環(huán)境
    發(fā)表于 02-04 16:44

    RISC-V vs ARM:為什么工業(yè)與邊緣計算仍然選擇 ARM 架構?

    在芯片架構討論中,RISC-V 和 ARM 的對比,已經“技術選型”升級為“路線之爭”。 一邊是? RISC-V :開源、免授權、可定制、不受單一廠商控制;另一邊是? ARM :成熟
    的頭像 發(fā)表于 01-21 17:33 ?988次閱讀
    RISC-V vs <b class='flag-5'>ARM</b>:為什么工業(yè)與邊緣計算仍然選擇 <b class='flag-5'>ARM</b> <b class='flag-5'>架構</b>?

    深度解析?ARM?架構劍橋車庫到未來計算

    大家好,我是你們的技術博主[Linux1024]。 今天我們來聊聊一個無處不在,但又常常被忽略的技術基石——ARM架構。 當你拿起手機、平板,或是打開輕薄的筆記本,你手里的設備大概率就運行著ARM
    的頭像 發(fā)表于 01-05 07:09 ?571次閱讀
    深度解析?<b class='flag-5'>ARM</b>?<b class='flag-5'>架構</b>:<b class='flag-5'>從</b>劍橋車庫到未來計算

    單片機的誤區(qū)

    怎么使用,根本也記不住寄存器的用途。 單片機完成一個具體的功能涉及到哪些寄存器,都會有例子給出,有些單片機,生產廠家也會給出相關的子程序,你只需要調用就可以。 等你把這些基礎知識學完以后,幾乎可以完成
    發(fā)表于 11-14 07:46

    什么是ARM架構?你需要知道的一切

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

    一文了解Arm神經超級采樣 (Arm Neural Super Sampling, Arm NSS) 深入探索架構、訓練和推理

    本文將從訓練、網絡架構到后處理和推理等方面,深入探討 Arm 神經超級采樣 (Arm Neural Super Sampling, Arm NSS) 的工作原理,希望為機器學習 (ML
    的頭像 發(fā)表于 08-14 16:11 ?3288次閱讀

    ARM入門學習方法分享

    架構。學習ARM的開始可以學習RISC和CISC架構基礎知識開始。 二、學習匯編語言:ARM
    發(fā)表于 07-23 10:21

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

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

    同一水平的 RISC-V 架構的 MCU,和 ARM 架構的 MCU 相比,運行速度如何?

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

    圖解單片機功能與應用(完整版)

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

    ARM Mali GPU 深度解讀

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

    Arm 公司面向 PC 市場的 ?Arm Niva? 深度解讀

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

    Arm 公司面向移動端市場的 ?Arm Lumex? 深度解讀

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

    Arm 公司面向汽車市場的 ?Arm Zena? 深度解讀

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

    Arm架構何以成為現代計算的基礎

    2025 年 4 月,Arm 架構迎來了問世 40 周年。這個始于英國劍橋一隅、懷揣雄心壯志的項目,如今已成為全球廣泛采用的計算架構。傳感器、智能手機、筆記本電腦,到汽車、數據中心等
    的頭像 發(fā)表于 05-20 10:02 ?1386次閱讀
    怀宁县| 平南县| 揭西县| 托克托县| 玉林市| 崇明县| 西贡区| 柘荣县| 抚顺县| 开原市| 若尔盖县| 江油市| 正蓝旗| 孟津县| 镇赉县| 张掖市| 雷州市| 乌拉特后旗| 武陟县| 桐庐县| 祁东县| 乌什县| 磴口县| 博野县| 凤冈县| 富裕县| 北票市| 华安县| 岳普湖县| 昆山市| 上高县| 沁阳市| 旺苍县| 裕民县| 东乡| 正宁县| 眉山市| 灵璧县| 易门县| 新巴尔虎左旗| 灵宝市|