娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年03月06日(星期四)

正在發生

2020年03月06日 | 【ARM裸板】ARM模式、異常與狀態

發布者:雅致書香 來源: eefocus關鍵字:ARM裸板  ARM模式  異常與狀態 手機看文章 掃描二維碼
隨時隨地手機看文章

1.兩種流程處理

1.查詢方式

特點:簡單、但占用較多資源

2.中斷方式

特點:負責、但占用資源少

常見的中斷有(中斷也是異常的一種):

按鍵(外部中斷)、定時器中斷、網絡數據

常見的異常有

指令異常、數據訪問出錯、Reset


2.中斷處理過程

2.1 硬件初始化

設置中斷源

設置中斷控制器(屏蔽、優先級)

設置CPU總開關(使能中斷)

2.2 執行程序

2.3 產生中斷

eg:

中斷信號

按下按鍵

中斷控制器

CPU

CPU每執行完一條指令,都會檢查有誤異常(中斷)產生

發現異常(中斷)產生,開始處理

對于不同的異常,會跳去不同的地址(異常向量)執行程序

這些地址上,只是一條跳轉指令(跳去執行其他函數)

2.4 執行中斷

1.保存現場(各類寄存器)

2.中斷處理

3.恢復現場


3.ARM的7種模式(Mode)

正常模式

 User (usr): The normal ARM program execution state

用戶模式(不可以直接進入其他模式)

 System (sys): A privileged user mode for the operating system

系統模式

異常模式


 FIQ (fiq): Designed to support a data transfer or channel process

快中斷模式

 IRQ (irq): Used for general-purpose interrupt handling

中斷模式

 Supervisor (svc): Protected mode for the operating system

管理模式

 Abort mode (abt): Entered after a data or instruction prefetch abort

中止模式

 Undefined (und): Entered when an undefined instruction is executed

未定義指令模式

除了用戶模式以外的6中模式 成為特權模式(Privileged Mode),可以編程操作CPSR(當前程序狀態寄存器)直接進入其他模式


不同模式是為了更好的應對所對應的異常(差別在于:寄存器的資源)

在這里插入圖片描述

banker register 為備份寄存器,可以成為專屬寄存器,R13(SP棧指針)、R14(LR返回地址)

SPSR(保存程序狀態寄存器):用來保存“被中斷模式的CPSR”,相當于CPSR的備份寄存器,eg:當正處于User Mode,發生中斷,進入IRQ Mode,SPSR_irq就保存了User Mode那一時刻的CPSR


3.1 異常向量表

在這里插入圖片描述

4.ARM的2種狀態(State)

ARM State:


使用ARM指令集,占據4個字節

Thumb State:


使用Thumb指令集,占據2個字節

M0~M4:模式位 Mode bit (7種模式)


T:狀態位 State bits(ARM or Thumb)

在這里插入圖片描述
在這里插入圖片描述

5.異常的處理流程

5.1 進入異常

進入異常時的動作(硬件部分實現)

 1.異常模式下的LR存放 [被中斷模式的下一條指令的地址](PC+4/PC+8)

 2.異常模式下的SPSR = CPSR

 3.修改CPSR的[M4~M0],進入異常模式

 4.跳到向量表

在這里插入圖片描述

5.2 退出異常

退出異常時的動作(硬件部分實現)

 1.PC = 異常模式下的LR - Offest(offest根據下表來確定)

 2.CPSR = 異常模式下的SPSR(恢復CPSR)

 3.清除中斷標志位

在這里插入圖片描述

6.程序以thumb指令集運行

6.1 gcc以thumb編譯

 thumb指令集編譯、使得代碼以thunb狀態運行,在makefile中的gcc編譯加上-mthunb

arm-linux-gcc -mthumb -c -o $@ $<

6.2 如何從arm切換至thumb

[x]在start.S中需要使用ARM指令集的用.code 32指定,用thumb指令集的用.code 16指定

使用BX指令(其是ARM指令系統中的帶狀態切換跳轉指令),BX命令后面的那個值如果最低位為1的話,則切換到thumb指令

.code 32

/*..............*/


/* 從ARM State 切換到Thumb State*/

adr r0,thumb_func

add r0,r0,#1 /*bit0 = 1時,bx就會切換CPU狀態至thumb state*/

bx r0


.code 16

thumb_func:


 /*..............*/


6.3 注意

對于thumb指令,不能向PC直接賦值

eg:ldr pc, =main(這樣不行),需要先把值賦值寄存器,再把寄存器賦值給PC

gcc disable built-in memcpy


當使用thumb編譯時,gcc會調用memcy,我們可以把變量改成static(存放在data段),這樣就不會讓gcc去調用了

關鍵字:ARM裸板  ARM模式  異常與狀態 引用地址:【ARM裸板】ARM模式、異常與狀態

上一篇:【ARM裸板】未定義指令異常分析及示例
下一篇:【ARM裸板】內存控制器、SDRAM基礎與代碼重定位

推薦閱讀

集微網消息,隨著全球集成電路產業進一步走向成熟期,半導體并購放緩,企業進入整合期,集成電路人才的極度缺失浮出水面。根據Deloitte Consulting進行的調查顯示,為了迎頭趕上自動化系統、大數據以及機器學習驅動的數字業務,大約有85%的芯片供應商都需要新的人才類型。然而,其中有77%的廠商都表示人才短缺,特別是電子工程師。SEMI(國際半導體產業...
一站式解決方案可加速設計和認證中壓和高壓逆變器應用領域Power Integrations公司推出一系列磁隔離變壓器,可為公司的 SCALE-iDriver?系列門極驅動器提供正確電壓和功率。二者結合可提供簡單穩定且具有成本效益的DC-DC變換器解決方案,無需進行額外電壓調整,可降低系統成本并減少開發時間。此款SIT12xxI變壓器和SCALE-iDriver IC已全面通過UL和VDE認...
在不同的芯片中其配置字不盡相同,但是管家最常用到的有如下幾部分:1,芯片的振蕩模式,有內外之分,還有三個速度的選擇2,片內看門狗的啟用,配置字中有專門控制控制片看門狗的開口或關閉,不能用軟件控制3,上電復位延時定時器PWRT的啟用。4,低電壓檢測復位BOR模塊的啟用5,代碼保護控制,一旦啟用代碼保護功能,就可以防止程序被非法讀出,注意的是,...
3月5日,深交所公告,因公司申請撤回發行上市申請文件,深交所決定終止對蘇州星諾奇科技股份有限公司首次公開發行股票并在創業板上市審核。據公告顯示,2021 年3月1日,星諾奇向本所提交了《蘇州星諾奇科技股份有限公司關于撤回首次公開發行股票并在創業板上市申請文件的申請》,保薦人中信證券股份有限公司向本所提交了《中信證券股份有限公司關于撤回蘇...

史海拾趣

問答坊 | AI 解惑

[轉帖]轉一篇學習STM8的好文章

第一節: 心情和時鐘 說實話我能夠使用的單片機不多,我總是以為無論什么單片機都能開發出好的產品。 前些年用51,總是向各位大大學習,無休止的索取,在網上狂覽一通。心里感激的同時也想奉獻一些,可是我會什么?后來使用avr(公司要求)還是 ...…

查看全部問答∨

M41T11設置完時間之后為什么時間不走啊?

已經設置M41T11的start位,每次讀時間都是當初設置的時間值。為什么?…

查看全部問答∨

如何在指定的平臺開發應用程序

原來在windows mobile 6.0上開發了個應用程序,現在想移植到wince6.0 的PND上(找別人買的,好象沒有提供SDK),不知該如何做,我用VS2005,只能選擇mobile 6.0的開發環境。我想在在這個pnd上開發程序,并能在其模擬器運行與調試…

查看全部問答∨

幫忙看下,這2款PIC 以太網開發板,我該選擇誰呢

愛晶電子 基于ENC28J60的PIC以太網開發板(PIC實驗板/PIC開發板)  ¥450 http://item.taobao.com/auction/item_detail-db2-cdaacf2253921bc4ab5b5d41b991e651.jhtml 小新電子 PIC18F97J60 以太網開發板 一 口 價: 298.00元 http:/ ...…

查看全部問答∨

兩個設備是否可以使用Jtag接口通信?

最近做一個項目,把兩個現有設備并湊到一起。兩個設備CPU需要通信,所有接口都有其他用途,只剩下一個Jtag,有沒有辦法使用Jtag進行通信?系統是基于Linux的,想不重寫驅動就可以通信,不知有沒有可能,本人對Jtag沒什么了解,望達人指教。…

查看全部問答∨

【VxWorks5.x -->VxWorks6.x 移植問題】

大家好,誰有沒有做過 PPC的BSP 從 5.X ---> 6.X 的移植啊? 我所知道的是,從6.x對5.X的支持是兼容的,那么我就先把 5.X 的BSP文件夾 如 ppc_myself_XXX 放到 h/config/ 下,然后新建立 BSP 工程,進行編譯,可是編譯的時候,發現ERROR超多啊 ...…

查看全部問答∨

我現在是2000系統,因需要裝了個98,現在的問題是裝了98后,就進不了2000了

我現在是2000系統,因需要裝了個98,現在的問題是裝了98后,就進不了2000了…

查看全部問答∨

周立功的開發板easyarm2104

現在小弟我手上有款ARM開發板、是周立功出的。型號是easyarm2104 但是所有相關的資料全丟了。有哪位大俠有的,能共享下嗎?不勝感激。 …

查看全部問答∨

STM32F105USBiap

103系列的好用的USB iap現在挪到105下不好用了。 對這個USB很不了解。 現在哪里能找到基于USB-OTG的USB iap例程? 哪位能分享一下例程不勝感激…

查看全部問答∨

求救啊

大俠們,我的T1CNT在CCS環境里不能自動記數,可我的使能位都設置過了,初始事件管理器的程序如下: void init_EV(void) { EvaRegs.T1CNT=0;      // 計數初值為0   EvaRegs.T1CMPR=0x3fff; //設置比較器初值 &nb ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 龙州县| 增城市| 台江县| 汾西县| 许昌市| 珠海市| 仲巴县| 休宁县| 沧州市| 西林县| 淮南市| 陆丰市| 福泉市| 尉犁县| 宝丰县| 上饶县| 隆德县| 东兰县| 娱乐| 台中市| 晴隆县| 江油市| 龙州县| 娄底市| 虹口区| 乌兰察布市| 土默特左旗| 大英县| 泰州市| 河南省| 漳平市| 安化县| 车险| 镇安县| 太和县| 武夷山市| 福清市| 芦山县| 新巴尔虎右旗| 竹溪县| 株洲市|