2015-07-21 52 views
0

嗨,我是ARM的新手,並且正在使用SAM3S4A ARM處理器和IAR編譯器。ARM開始地址

瞭解閃存代碼是從0x00400000 - 0x0043FFFF,並且處理器從地址零開始(0x00000000),PC如何跳到0x00400000,因爲默認情況下VTOR寄存器爲零。

+0

好吧,數據表中的內存映射顯示0x00000000 - 0x003fffff爲「啓動內存」,第8.1.4節(「啓動策略」)概述了這一點。你是否澄清了這些文件的說明? – Notlikethat

+0

我想要做的是將運行時位於0x00000004的應用程序起始地址更改爲新值,然後重置處理器。這是我正在實施的一個引導程序。問題是,我如何寫一個新值並將其保存到安全寄存器0x00000004? – IanDD

回答

0

從我可以從文檔中理解的內容,ARM proc在復位時轉到0x0。可以使用GPNVM寄存器將0x00000000處的4K地址空間映射到ROM或FLASH。所以在復位時,ARM開始從ROM或FLASH執行代碼。 (ROM包含一些專有引導程序,您可以在Flash中擁有自己的OS/Bootloader)。一旦控制達到您寫入閃存的代碼,您可以設置一個新的矢量表並更新VTOR,以便在那裏路由新的異常。