吴忠躺衫网络科技有限公司

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

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

3天內不再提示

詳細剖析Cortex-M3處理器

5RJg_mcuworld ? 2018-01-15 11:07 ? 次閱讀

工作模式

線程模式(Thread mode):處理器復位或異常退出時為此模式。此模式下的代碼可以是特權代碼也可以是用戶代碼,通過CONTROL[0]控制。

處理模式(Handler mode):出現異常(包括中斷)時進入此模式,此模式下所有代碼為特權訪問。

代碼權限

特權訪問:對處理器資源擁有完全訪問限權;處理器復位后進入此訪問模式;清零 CONTROL[0]進入用戶模式。

用戶訪問:禁止訪問多數系統寄存器。只能通過進入異常(中斷)來返回特權模式。進入異常前是用戶級訪問,則退出異常時自動回到用戶及,除非在異常中修改CONTROL[0]位。

工作狀態

Thumb狀態(正常執行指令狀態)和調試狀態。

寄存器

r0-r12:通用寄存器,其中r8-r12只能被32位指令訪問。

r13(SP):堆棧指針;線程模式時可以在線程堆棧和主堆棧之間切換,但處理模式只使用主堆棧。兩個堆棧同一時刻只有一個可見,進入、退出異常時自動切換堆棧。

r14(LR):鏈接寄存器,保存子程序或異常的返回地址(要實現嵌套,必須入棧)。

r15(PC):程序計數器。

xPSR:特殊用途的程序狀態寄存器。

異常

進入異常步驟:

1.處理器在當前堆棧上把xPSR、PC、LR、r12、r3~r0八個寄存器自動依次入棧。

2.讀取向量表(如果是復位中斷,更新SP值)。

3.根據向量表更新PC值。

4.加載新PC處的指令(2、3、4步與1步同時進行)。

5.更新LR為EXC_RETURN(EXC_RETURN表示退出異常后返回的模式及使用的堆棧)。

退出異常步驟

1.根據EXC_RETURN指示的堆棧,彈出進入中斷時被壓棧的8個寄存器。

2.從剛出棧的IPSR寄存器[8:0]位檢測恢復到那個異常(此時為嵌套中斷中),若為0則恢復到線程模式。

3.根據EXC_RETURN,選擇使用相應SP。

末尾連鎖(Tail-chaining):當前正在執行中斷,又有一個中斷到來且這個中斷優先級比正在執行的中斷優先級低(如果有其他被壓棧的低優先級中斷則要比這些中斷優先級高),這個中斷暫時被掛起,等到當前中斷執行完后不再執行堆棧操作,而直接進入掛起的中斷。

遲來:前一個中斷還沒有進入執行階段(但處理器狀態已經保存),后面來了一個高優先級中,則前一個中斷被搶占,后來的高優先級中斷不需要再保存寄存器狀態。

中斷

Cortex-M3中有兩個優先級的概念——搶占式優先級和響應優先級,有人把響應優先級稱作'亞優先級'或'副優先級',每個中斷源都需要被指定這兩種優先級。

具有高搶占式優先級的中斷可以在具有低搶占式優先級的中斷處理過程中被響應,即中斷嵌套,或者說高搶占式優先級的中斷可以嵌套低搶占式優先級的中斷。

當兩個中斷源的搶占式優先級相同時,這兩個中斷將沒有嵌套關系,當一個中斷到來后,如果正在處理另一個中斷,這個后到來的中斷就要等到前一個中斷處理完之后才能被處理。如果這兩個中斷同時到達,則中斷控制器根據他們的響應優先級高低來決定先處理哪一個;如果他們的搶占式優先級和響應優先級都相等,則根據他們在中斷表中的排位順序決定先處理哪一個。

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

    關注

    31

    文章

    5363

    瀏覽量

    121198
  • 中斷
    +關注

    關注

    5

    文章

    900

    瀏覽量

    41759
  • Cortex-M3
    +關注

    關注

    9

    文章

    270

    瀏覽量

    59591

原文標題:Cortex-M3的一些關鍵概念!

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Cortex-M3處理器是什么

    STM32單片機STM32的核心Cortex-M3處理器是一個標準化的微控制結構,希望思考一下,何為標準化?簡言之,Cortex-M3處理器
    發表于 07-16 06:33

    STM32的核心Cortex-M3處理器是什么

    STM32的核心Cortex-M3處理器是一個標準化的微控制結構,希望思考一下,何為標準化?簡言之,Cortex-M3處理器擁有32位CP
    發表于 08-02 08:52

    Cortex-M3處理器中斷與FreeRTOS中斷優先級配置

    置頂/星標公眾號,不錯過每一條消息!很多朋友對中斷的一些知識還是不了解,今天就寫點關于Cortex-M3處理器中斷相關,以及FreeRTOS中斷優先級配置的內容。...
    發表于 08-13 06:16

    STM32的核心Cortex-M3處理器簡介

    Cortex-M3處理器是什么?Cortex-M3的CPU支持哪兩種運行模式?
    發表于 09-23 09:15

    Cortex-M3處理器中的嵌套向量中斷控制的特性是什么?

    中斷和異常的作用是什么?Cortex-M3處理器中的嵌套向量中斷控制的特性是什么?
    發表于 11-05 07:25

    STM32的核心Cortex-M3處理器的標準化是什么意思

    STM32的核心Cortex-M3處理器是一個標準化的微控制結構,希望思考一下,何為標準化?簡言之,Cortex-M3處理器擁有32位CP
    發表于 12-06 07:53

    基于ARM Cortex-M3內核的STM32處理器有何性能

    一、背景如果你正為項目的處理器而進行艱難的選擇:一方面抱怨16位單片機有限的指令和性能,另一方面又抱怨32位處理器的高成本和高功耗。那么,基于 ARM Cortex-M3內核的STM32系列
    發表于 12-06 07:20

    制造一種基于Cortex-M0和Cortex-M3處理器的SoC

    DesignStartDesignStart計劃可以讓用戶無需預付授權費用,就可以開始設計、制造基于Cortex-M0和Cortex-M3處理器的SoC,當產品成功量產出貨之后再支付版稅。ARM
    發表于 07-27 16:58

    Cortex-M3權威指南介紹

    Cortex-M3處理器介紹基本的硬件構架和指令系統待
    發表于 11-23 11:01 ?0次下載

    高性能低成本Cortex-M3處理器

    高性能低成本Cortex-M3處理器,參考下。
    發表于 01-22 14:23 ?27次下載

    基于ARM Cortex-M3處理器的電源設計及應用

    今天我們就來介紹一個基于Cortex-M3處理器的電源系統設計——GD32F1x0,希望對大家有所幫助。
    發表于 08-28 11:20 ?14次下載
    基于ARM <b class='flag-5'>Cortex-M3</b><b class='flag-5'>處理器</b>的電源設計及應用

    STM32系列ARM Cortex-M3處理器微控制原理與實踐

    STM32系列ARM Cortex-M3處理器微控制原理與實踐
    發表于 09-22 16:34 ?24次下載
    STM32系列ARM <b class='flag-5'>Cortex-M3</b><b class='flag-5'>處理器</b>微控制<b class='flag-5'>器</b>原理與實踐

    基于Cortex-M3處理器的開關磁阻電機控制設計

    基于Cortex-M3處理器的開關磁阻電機控制設計
    發表于 09-29 09:15 ?9次下載
    基于<b class='flag-5'>Cortex-M3</b><b class='flag-5'>處理器</b>的開關磁阻電機控制<b class='flag-5'>器</b>設計

    STM32系列Cortex-M3處理器編程手冊免費下載

    本編程手冊為應用程序和系統級軟件開發人員提供信息。它對STM32F10xxx/20xxx/21xxx/l1xxx Cortex-M3處理器編程模型、指令集和核心外設進行了完整的描述
    發表于 09-12 08:00 ?38次下載
    STM32系列<b class='flag-5'>Cortex-M3</b><b class='flag-5'>處理器</b>編程手冊免費下載

    Cortex-M3處理器內核與基于Cortex-M3的MCU關系

    Cortex-M3Cortex-M3簡述Cortex-M3是ARM公司設計的ARMv7架構下Cortex系列的首秀,其目的是為了讓32位處理器加入單片機市場,
    發表于 11-05 18:35 ?8次下載
    <b class='flag-5'>Cortex-M3</b><b class='flag-5'>處理器</b>內核與基于<b class='flag-5'>Cortex-M3</b>的MCU關系
    任我赢百家乐官网软件| 三元玄空24山坐向| 玩德州扑克技巧| 澳门百家乐娱乐城网址| 澳门百家乐官网庄闲和| 娱乐城官方网站| 百家乐单机版的| 做生意讲究风水| 网络百家乐官网必胜投注方法| 皇冠娱乐城| 二八杠算法| 百家乐大钱赢小钱| 百家乐注码调整| 百家乐官网技巧头头娱乐| bet9全讯网查询| 网上百家乐真钱游戏| 如何玩百家乐游戏| 巴西百家乐官网的玩法技巧和规则| 太阳城百家乐官网杀祖玛| 肥西县| 明升网| 皇冠现金网哪个最好| 全讯网3| 百家乐哪条下路好| 百家乐高手长胜攻略| 机械手百家乐官网的玩法技巧和规则 | 全讯网直播| 百家乐娱乐平台网| 百家乐娱乐城官方网| 华盛顿百家乐官网的玩法技巧和规则 | 大发888截图| 澳门百家乐路单| 大发百家乐的玩法技巧和规则| 阳宅风水24向详解| 百家乐官网多少钱| 百家乐官网没边| 百家乐官网赌场策略| 百家乐官网大眼仔小路| 使用的百家乐官网软件| 百家乐官网沙| 真人百家乐官网游戏网|