文章目錄
中斷斷尾
當多箇中斷同時被觸發,優先級高的中斷中斷響應完成後不需要進行運行環境的恢復,而是直接進行優先級次高的中斷,全部中斷執行完成後,再恢復運行環境。具有中斷斷尾功能,可以省去兩次堆棧的操作。
SWD調試接口
SWD只需要使用芯片兩根引腳(SWDIO SWCLK)就可以實現對內核芯片的在線仿真與調試,使用SWD可以向芯片flash存儲器固化程序,而且具有指令跟蹤執行的功能。
有幾個優點:
- SWD在高速模式下更加可靠,在大數據量的情況下,JTAG下載程序可能會失敗,但是SWD發生的機率會小很多,基本使用JTAG的仿真模式情況下可以直接使用SWD模式。
- GPIO口恰好缺一個的時候,我們可以使用SWD仿真,這種模式支持更少的引腳。
- 在板子規劃設計時,推薦使用SWD模式,需要引腳少,需要的PCB空間就小。
JTAG調試接口
JTAG(Joint Test Action Group,聯合測試行動小組)是一種國際標準測試協議(IEEE 1149.1兼容),主要用於芯片內部測試。現在多數的高級器件都支持JTAG協議,如ARM、DSP、FPGA器件等。標準的JTAG接口是4線:TMS、 TCK、TDI、TDO,分別爲模式選擇、時鐘、數據輸入和數據輸出線。 相關JTAG引腳的定義爲:
- TMS:測試模式選擇,TMS用來設置JTAG接口處於某種特定的測試模式;
- TCK:測試時鐘輸入;
- TDI:測試數據輸入,數據通過TDI引腳輸入JTAG接口;
- TDO:測試數據輸出,數據通過TDO引 腳從JTAG接口輸出;
哈佛結構和馮諾依曼結構
哈佛結構是爲了高速數據處理而採用的,因爲可以同時讀取指令和數據(分開存儲的)。大大提高了數據吞吐率,缺點是結構複雜。通用微機指令和數據是混合存儲的,結構上簡單,成本低。假設是哈佛結構:你就得在電腦安裝兩塊硬盤,一塊裝程序,一塊裝數據,內存裝兩根,一根儲存指令,一根存儲數據……
是什麼結構要看總線結構的。51單片機雖然數據指令存儲區是分開的,但總線是分時複用的,所以頂多算改進型的哈佛結構。ARM7 ARM9雖然是哈佛結構,但是之前的版本也還是馮·諾依曼結構。早期的X86能迅速佔有市場,一條很重要的原因,正是靠了馮·諾依曼這種實現簡單,成本低的總線結構。處理器雖然外部總線上看是諾依曼結構的,但是由於內部CACHE的存在,因此實際上內部來看已經算是改進型哈佛結構的了。
馮諾依曼結構組成:運算器、控制器、存儲器、輸入設備、輸出設備
RAM 寫回模式(write back)
具有RAM寫回模式的區域,又稱爲快速RAM區,當內核向RAM寫入數據時,不是直接將數據寫入RAM,而是寫入更快速的緩存中,當緩存寫滿或者總線空閒時,將緩存中的數據自動寫入到RAM區域。因此,寫回特性的RAM中的數據有可能與其緩存中的數據不同,當數據較少時,數據將保存在緩存中,而不用寫入RAM。
片上RAM(SRAM)一般是寫回特性的緩存機制
RAM 寫通模式(write through)
當內核向RAM區域寫入數據時,通過緩存直接將數據寫入到ram區域。寫通特性下RAM中數據和緩存中數據是相同的。
字地址半字地址
字地址:地址最低兩位爲0,如0x0000 0000,0x0000 0004,0x0000 0008;
半字地址:地址最低位爲0,如0x0000 0000,0x0000 0002,0x0000 0004;
字地址都是半字地址
大端模式小端模式
小端模式下:數據字的高字節存儲在字地址的高端,數據字的低字節存儲在字地址的低端;
大端模式:數據字的高字節存儲在字地址的低端,數據字的低字節存儲在字地址的高端;
大端模式是保序的,每個字節內的位的順序保持從高到低不變
服務器一般是大端模式
進程模式和手柄模式
ARM指令集與Thumb指令集
由於Thumb指令在某些特殊情況下可能比ARM指令更有效,所以它在很多方面得到了廣泛的應用。但是Thumb知識ARM指令集的一個子集,它不能獨立組成一個應用系統,所以在很多情況下應用程序需要二者的混合編程,這就必然存在ARM與Thumb狀態之間函數調用的問題。
ARM/Thumb之間的狀態切換是通過一條專用的轉移交換指令BX來實現的。BX指令以通用寄存器位操作數,通過拷貝Rn到PC來實現4GB空間範圍內的一個絕對跳轉。BX利用Rn寄存器中目的地址值的最後一位來判斷跳轉後的狀態。當最後一位爲0時,表示轉移到ARM狀態;當最後一位爲1時,表示轉移到Thumb狀態。