【彙總】嵌入式面試相關知識點

中斷斷尾

當多箇中斷同時被觸發,優先級高的中斷中斷響應完成後不需要進行運行環境的恢復,而是直接進行優先級次高的中斷,全部中斷執行完成後,再恢復運行環境。具有中斷斷尾功能,可以省去兩次堆棧的操作。

SWD調試接口

SWD只需要使用芯片兩根引腳(SWDIO SWCLK)就可以實現對內核芯片的在線仿真與調試,使用SWD可以向芯片flash存儲器固化程序,而且具有指令跟蹤執行的功能。
有幾個優點:

  1. SWD在高速模式下更加可靠,在大數據量的情況下,JTAG下載程序可能會失敗,但是SWD發生的機率會小很多,基本使用JTAG的仿真模式情況下可以直接使用SWD模式。
  2. GPIO口恰好缺一個的時候,我們可以使用SWD仿真,這種模式支持更少的引腳。
  3. 在板子規劃設計時,推薦使用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狀態。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章