1. gzyueqian
      13352868059

      想來(lái)粵嵌ARM培訓(xùn)嗎?先看看這些關(guān)于ARM的干貨分享(中)

      更新時(shí)間: 2017-03-17 14:20:13來(lái)源: 粵嵌教育瀏覽量:3669

        在昨天小編分享了一些ARM培訓(xùn)的干貨上篇,今天繼續(xù)我們的中篇。

        ARM處理器對(duì)異常中斷的響應(yīng)過(guò)程如下所述:1、保存處理器當(dāng)前狀態(tài)、中斷屏蔽位以及各條件標(biāo)志位;2、設(shè)置當(dāng)前程序狀態(tài)寄存器CPSR中的相應(yīng)位;3、將寄存器lr_mode設(shè)置成返回地址;4、將程序計(jì)數(shù)器值PC,設(shè)置成該異常中斷的中斷向量地址,跳轉(zhuǎn)到相應(yīng)異常中斷處執(zhí)行。

        ARM指令與Thumb指令的區(qū)別:在ARM體系結(jié)構(gòu)中,ARM指令集中的指令是32位的指令,其執(zhí)行效率很高。對(duì)于存儲(chǔ)系統(tǒng)數(shù)據(jù)總線為16位的應(yīng)用系統(tǒng),ARM體系提供了Thumb指令集。Thumb指令集是對(duì)ARM指令集的一個(gè)子集重新編碼得到的,指令長(zhǎng)度為16位。通常在處理器執(zhí)行ARM程序時(shí),稱處理器處于ARM狀態(tài);當(dāng)處理器執(zhí)行Thumb程序時(shí),稱處理器處于Thumb狀態(tài)。Thumb指令集并沒(méi)有改變ARM體系地層的程序設(shè)計(jì)模型,只是在該模型上加上了一些限制條件。Thumb指令集中的數(shù)據(jù)處理指令的操作數(shù)仍然為32位,指令尋址地址也是32位的。

        ARM程序和Thumb程序混合使用的場(chǎng)合:通常,Thumb程序比ARM程序更加緊湊,而且對(duì)于內(nèi)存為8位或16位的系統(tǒng),使用Thumb程序效率更高。但是,在下面一些場(chǎng)合下,程序必須運(yùn)行在ARM狀態(tài),這時(shí)就需要混合使用ARM和Thumb程序。強(qiáng)調(diào)速度的場(chǎng)合,應(yīng)該使用ARM程序;有些功能只能由ARM程序完成。如果要在調(diào)試器中運(yùn)行Thumb程序,必須為該Thumb程序添加一個(gè)ARM程序頭,然后再切換到Thumb狀態(tài),執(zhí)行Thumb程序。

        什么是ATPCS:為了使單獨(dú)編譯的C語(yǔ)言程序和匯編程序之間能夠相互調(diào)用,必須為子程序之間的調(diào)用規(guī)定一定的規(guī)則。ATPCS就是ARM程序和Thumb程序中子程序調(diào)用的基本規(guī)則。這些規(guī)則包括寄存器使用規(guī)則,數(shù)據(jù)棧的使用規(guī)則,參數(shù)的傳遞規(guī)則等。
        ARM微處理器支持7種運(yùn)行模式,分別為:
        1、用戶模式(usr):ARM處理器正常的程序執(zhí)行狀態(tài);
        2、快速中斷模式(fiq):用于高速數(shù)據(jù)傳輸或通道管理;
        3、外部中斷模式(irq):用于通用的中斷處理;
        4、管理模式(svc):操作系統(tǒng)使用的保護(hù)模式;
        5、數(shù)據(jù)訪問(wèn)終止模式(abt):當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該模式,用于虛擬存儲(chǔ)及存儲(chǔ)保護(hù);
        6、系統(tǒng)模式(sys):運(yùn)行具有特權(quán)的操作系統(tǒng)任務(wù);

        7、未定義指令中止模式(und):當(dāng)未定義指令執(zhí)行時(shí)進(jìn)入該模式,可用于支持硬件協(xié)處理器的軟件仿真。

        ARM體系結(jié)構(gòu)所支持的異常類型:ARM體系結(jié)構(gòu)所支持的異常和具體含義如下(圈里面的數(shù)字表示優(yōu)先級(jí)):復(fù)位①:當(dāng)處理器的復(fù)位電平有效時(shí),產(chǎn)生復(fù)位異常,程序跳轉(zhuǎn)到復(fù)位異常處執(zhí)行(異常向量:0x0000,0000);未定義指令⑥:當(dāng)ARM處理器或協(xié)處理器遇到不能處理的指令時(shí),產(chǎn)生為定義異常。可使用該異常機(jī)制進(jìn)行軟件仿真(異常向量:0x0000,0004);軟件中斷⑥:有執(zhí)行SWI指令產(chǎn)生,可用于用戶模式下程序調(diào)用特權(quán)操作指令。可使用該異常機(jī)制實(shí)現(xiàn)系統(tǒng)功能調(diào)用(異常向量:0x0000,0008);指令預(yù)取中止⑤:若處理器的預(yù)取指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn),存儲(chǔ)器會(huì)向處理器發(fā)出中止信號(hào),當(dāng)預(yù)取指令被執(zhí)行時(shí),才會(huì)產(chǎn)生指令預(yù)取中止異常(異常向量:0x0000,000C);數(shù)據(jù)中止②:若處理器數(shù)據(jù)訪問(wèn)的指令的地址不存在,或該地址不允許當(dāng)前指令訪問(wèn),產(chǎn)生數(shù)據(jù)中止異常(異常向量:0x0000,0010);IRQ④(外部中斷請(qǐng)求):當(dāng)處理器的外部中斷請(qǐng)求引腳有效,且CPSR中的I位為0時(shí),產(chǎn)生IRQ異常。系統(tǒng)的外設(shè)可以該異常請(qǐng)求中斷服務(wù)(異常向量:0x0000,0018);FIQ③(快速中斷請(qǐng)求):當(dāng)處理器的快速中斷請(qǐng)求引腳有效,且CPSR中的F位為0時(shí),產(chǎn)生FIQ異常(異常向量:0x0000,001C)。說(shuō)明:其中異常向量0x0000,0014為保留的異常向量。

        想來(lái)粵嵌ARM培訓(xùn)嗎?先看看這些關(guān)于ARM培訓(xùn)的干貨分享(中),明天更新下篇,繼續(xù)關(guān)注粵嵌教育官網(wǎng),更多資訊可以了解哦!



      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 精品久久洲久久久久护士 | 日韩精品一区二区亚洲AV观看 | 亚洲国产欧美在线人成| | 中文字幕乱在线伦视频日韩 | 亚洲成a人在线观看中文 | 最新精品国偷自产手机在线 |