色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

GReq_mcu168 ? 來源:玩轉單片機 ? 2020-08-05 10:32 ? 次閱讀

單片機轉到ARM,主要需要學習ARM的架構,ARM相比單片機多了一些外設和總線。在僅僅是裸奔的情況下,如果熟悉了ARM架構,那么可以認為使用任何ARM架構的芯片和用單片機將沒有區別。 ARM架構之所以更復雜,當然是為了跑更快以及更好地支持片上系統,所以在某種程度上來說對片上系統不是很了解的話那對于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) :正常程序執行的模式

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

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

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

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

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

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

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

啟動文件

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

MMU

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

ARM920T的三種類型地址

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

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

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

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

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

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

如何使用FCSEPID

920T內核發出的地址都是0-32MB的范圍,4GB的逆序空間被分成了1238個進程空間塊,每個進程空間塊大小為32MB。每個進程空間塊中可以包含一個進程。系統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,快表就是存儲幾個常用的頁表,以提高系統運行的速度。在更新頁表之前要使其無效,其操作的寄存器為R8,R8為只寫寄存器,如果讀它則會造成不可估計的后果。

AP賦值表

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

關于C、B賦值

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

AHB/APB是什么

AHB(AdvancedHigh performance Bus),主要用于系統高性能、高時速速率模塊間通信。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是不穩定的,所以在PLLCON在被軟件配置之前Fin直接是跳過MPll給FCLK,所以不配置PLLCON也是可以正常工作。即使工作在正常狀態下,也可以對MPLLCON進行配置,配置之后等待PLL Lock-time過后內部各模塊的CLK才可以被正常供應。

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

    關注

    6039

    文章

    44575

    瀏覽量

    636381
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9107

    瀏覽量

    367968
  • 寄存器
    +關注

    關注

    31

    文章

    5357

    瀏覽量

    120631

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

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

收藏 人收藏

    評論

    相關推薦

    單片機Debug工具性能對比 單片機調試常用命令

    。以下是對單片機調試工具性能的簡要對比以及一些常用的調試命令。 單片機Debug工具性能對比 Keil uVision 性能 :Keil uVision 是一款功能強大的集成開發環境(IDE),支持多種單片機,特別是
    的頭像 發表于 12-19 09:56 ?325次閱讀

    Arm全面設計助力Arm架構生態發展

    Arm 控股有限公司(納斯達克股票代碼:ARM,以下簡稱 Arm)近日分享了Arm 全面設計 (Arm Total Design) 生態項目
    的頭像 發表于 10-21 09:58 ?393次閱讀

    如何學習ARM

    ARM 處理器架構: 學習 ARM 處理器的架構是學習的核心。ARM 架構有不同的版本,如 A
    發表于 10-11 10:42

    【全新課程資料】正點原子《基于GD32 ARM32單片機項目實戰入門》培訓課程資料上線!

    綜合部分:倒車雷達項目、感應垃圾桶項目 二、課程目的 1、化整為零,由淺入深,解決ARM32單片機項目入門難的問題; 2、綜合應用基礎知識,提高項目實戰能力,解決眼高手低的問題; 3、通過多個項目實戰
    發表于 09-24 18:06

    ARM 架構工控與 X86 架構工控:差異究竟在哪?

    控制系統等行業。本文詳細分析一下ARM工控與X86架構工控,供大家參考。 應用領域:ARM控制器適用于小型應用,邊緣計算、自動化控制、物
    的頭像 發表于 09-20 15:13 ?527次閱讀
    <b class='flag-5'>ARM</b> <b class='flag-5'>架構</b>工控<b class='flag-5'>機</b>與 X86 <b class='flag-5'>架構</b>工控<b class='flag-5'>機</b>:差異究竟在哪?

    一個暑假如何學習單片機

    一個暑假是學習和掌握單片機基礎知識的良好時機。以下是一個關于如何在暑假期間學習單片機的建議計劃
    的頭像 發表于 07-03 09:19 ?542次閱讀
    一個暑假如何學習<b class='flag-5'>單片機</b>

    stm32單片機學習路線

    、函數、指針等。 2.了解電子電路基礎 對于單片機開發來說,了解電子電路的基礎知識是非常重要的,包括基本的電路原理、電阻、電容、電感等元件的作用和特性。 第二步STM32入門 1.了解
    發表于 05-10 15:34

    如何系統、科學地自學單片機

    的自學單片機呢?自學單片機需要一定的計劃和方法,以下是具體的步驟和建議。如何系統、科學地自學單片機?學習電子基礎知識:理解電路原理、數字電子技術、模擬電子技術等基礎
    的頭像 發表于 03-28 08:03 ?1116次閱讀
    如何系統、科學地自學<b class='flag-5'>單片機</b>?

    fpga封裝技術和arm架構的優缺點

    FPGA封裝技術和ARM架構是兩個不同的概念,分別屬于硬件設計的不同領域。
    的頭像 發表于 03-26 15:51 ?892次閱讀

    英特爾與Arm聯手助力初創企業開發Arm架構SoC

    據介紹,此次合作旨在聯合推動使用Intel 18A制程工藝研發Arm架構SoC的初創企業發展。英特爾和Arm將攜手提供IP和制造及相關金融支持,助力初創企業持續進行創新和增長。這些企業將專門針對各種設備和服務器研發
    的頭像 發表于 03-25 15:34 ?417次閱讀

    市面上很火的32位單片機—PY32F030單片機的產品特性介紹

    PY32F030 系列單片機是采用了高性能的 32 位 ARM? Cortex?-M0+ 內核,寬電壓工作范圍的 MCU。
    的頭像 發表于 03-22 15:29 ?1322次閱讀

    Arm v9芯片新架構揭秘

    從中長期來看,隨著單芯片 ARM 核數增加、基于 ARM 架構芯片數量的上升以及ARM 應用場景的增加,公司仍將保持增長。據公司公告數據顯示,2023 財年,高端芯片采用
    發表于 02-27 14:14 ?5471次閱讀
    <b class='flag-5'>Arm</b> v9芯片新<b class='flag-5'>架構</b>揭秘

    學習RISC-V單片機的感想

    開始學習單片機開始,就沒有在單片機總線方面的知識投入什么精力。覺得就是為了應用開發,沒必要了解底層架構方面的
    發表于 02-17 21:00

    學習ARM單片機哪個更實用

    一般在8位單片機ARM方面的嵌入式系統是有層次上的差別,ARM適用于系統復雜度較大的高級產品,如PDA、手機等應用。
    的頭像 發表于 02-02 14:16 ?986次閱讀

    arm架構和x86架構區別 linux是x86還是arm

    ARM架構和x86架構是兩種不同的計算機處理器架構,它們在體系結構、指令集、應用領域等方面有著明顯的區別。Linux操作系統則具有廣泛的適配性,可以運行在各種
    的頭像 發表于 01-30 13:46 ?1.9w次閱讀
    主站蜘蛛池模板: 精品无码国产AV一区二区三区| 伊人国产在线播放| 吻嘴胸全身好爽床大全| 91精选国产| 花蝴蝶免费版高清版| 桃色园社区| japanese色系free日本| 欧美疯狂做受xxxxx喷水| 在线亚洲97se| 精品成人片深夜| 99精品热视频30在线热视频 | 国产大片51精品免费观看| 三色午夜秀| 高清不卡伦理电影在线观看| 日韩a视频在线观看| 国产GV天堂亚洲国产GV刚刚碰| 日韩欧美成人免费中文字幕| 果冻传媒完整免费网站在线观看 | 曰本aaaaa毛片午夜网站| 精品国产精品人妻久久无码五月天| 7723手机游戏破解版下载| 美国女孩毛片| www.99在线| 日本黄色www| 高h全肉图| 中文字幕无线观看不卡网站| 男女无遮挡吃奶gift动态图| 被六个男人躁到一夜同性| 涩涩爱涩涩电影网站| 国产自产第一区c国产| h片下载地址| 在线毛片片免费观看| 天天躁日日躁狠狠躁午夜剧场| 男女肉大捧进出全过程免费| 久久AV国产麻豆HD真实乱| jealousvue成熟40岁| 亚洲欧美一区二区三区九九九| 久久久久久久久亚洲| 99在线观看视频免费| 色欲午夜无码久久久久久| 免费成年人在线观看视频|