ARM啟動(dòng)過(guò)程中的為什么要做內(nèi)存重映射
之后要進(jìn)行地址重映射,把SRAM從0x0搬走,將DRAM的地址映射到0x0,這是為了保證一些中斷處理程序等的地址正確性,而且之后正式進(jìn)入操作系統(tǒng)運(yùn)行。
本文引用地址:http://2s4d.com/article/201611/319570.htm那么為什么不從一開(kāi)始就把DRAM映射到0x0呢,我想,是因?yàn)橄到y(tǒng)啟動(dòng)之后程序從0x0開(kāi)始運(yùn)行,先把SRAM映射到這個(gè)位置,執(zhí)行SRAM中的代碼,進(jìn)行必要的初始化,之后把DRAM映射進(jìn)來(lái),進(jìn)入操作系統(tǒng)。
實(shí)際上整個(gè)系統(tǒng)是的啟動(dòng)是從復(fù)位異常中斷處理程序開(kāi)始的,這個(gè)中斷是有復(fù)位引腳上電引發(fā)的,也就是我們的開(kāi)機(jī)按鈕操作,這個(gè)程序的地址就在0x0(或者0xFFFF0000)。
再之后進(jìn)入操作系統(tǒng)的啟動(dòng)過(guò)程,也就是如何把操作系統(tǒng)從硬盤(pán)讀取到內(nèi)存DRAM并執(zhí)行,下一步再來(lái)補(bǔ)充。
評(píng)論