2017-06-29 73 views
0

我對ARM Cortex-m處理器的引導順序有些困惑。從許多不同的資源,我讀到,在復位後,皮層-m複製內容從0x0到堆棧指針,複製復位處理程序地址從0x4到PC ...我的問題是:ARM Cortex-m4引導序列

1)cortex-m處理器將這兩個值複製到適當的寄存器,我的意思是處理器需要LDR/STR指令來這樣做,但這裏的值是自動複製的?處理器如何知道這兩個詞需要被複制。

2)cortex-m控制器是否包含最初執行的任何內置固件? 3)通常情況下,處理器在復位後,從復位向量中的特定存儲器位置開始執行,其中跳轉指令被置於復位處理器中......但是在cortex-m中,處理器通過將前兩個字複製到寄存器並開始然後程序計數器指向復位處理程序...無跳轉指令無處理器跳轉復位的特定存儲位置。這怎麼可能??

+0

沒有固件的理由,固件可以幫助您查詢任何內容。 –

+0

某些處理器通過在已知位置處的值的地址處執行而在其他地址處開始執行。我沒有一個完整的得分,但後者(皮質m屬於)是我認爲是更常見的解決方案。 –

+0

https://en.wikipedia.org/wiki/Finite-state_machine在任何指令處理狀態開始之前,您可以擁有任意數量的狀態。說明實際上不再執行內存操作,而是printf()實際上將像素或字符放在屏幕上。我可以在屏幕上放置像素/字符而不使用printf。 –

回答

1

2)cortex-m控制器是否包含最初執行的任何內置固件?

高度依賴型號而製作。例如:恩智浦LPC系列Cortex-M芯片(如LPC17xx)具有一些在閃存程序之前執行的屏蔽ROM指令。其他人可能有在沒有這樣的存儲器構建。

1)如何皮質-M處理器拷貝這兩個值到相應的寄存器,我的意思是處理器需要LDR/STR指令這樣做

發生這種情況在硬件之前執行任何代碼,所以不需要LDR指令。

如果您知道狀態機是什麼以及如何使用VHDL或Verilog等硬件描述語言來實現它,那麼它的可信度很簡單。

+0

您可能會想到,流水線階段的復位狀態可能與適當的指令相關聯,而不是執行該功能的附加邏輯...... –