主儲存空間(main memory area)
boot映象區位於6410定址空間的0x0~0x07ffffff(128mb)位置,這段區域並沒有真正的儲存裝置,實際執行過程中是對映到內部儲存區或靜態儲存區,boot映象區固定起始位址為0x00000000。
boot 映象區沒有實際的儲存裝置,只是在一些特定區域的「映象」,之所以有這種位於0x0位址映象,主要是因為arm核心啟動之後強制pc從0x0位址開始取指有關。至於與哪些特定區域映象,與系統配置密切相關(關於系統啟動配置詳見後續章節說明),當系統為:
1) srom (8 bit/16 bit)啟動(booting)
當系統為srom booting 配置,boot映象區為srom控制器的第0個bank(128mb),即0x10000000~0x17ffffff位址,支援的儲存器可以是sram、rom、nor flash等,對應位址片選引腳xm0csn[0]。
2) modem(8 bit/16 bit)啟動(booting)
當系統為modem booting配置,boot映象區僅位址為0x00000000~0x00007fff的32kb區域有效,且對應為6410內部的i_rom區低32kb位元組0x08000000~0x08007fff。
3) onenand 啟動(booting)
當系統為onenand 模式啟動配置,整個boot映象區0x0~0x07ffffff全部為靜態儲存器0x20000000~0x27ffffff位址映象,128mb一一對應。
6410支援2 bank個onenand 位址對映區,分別為onenand0 和onenand1,只有onenand0對應的位址才可能在啟動時候映象到boot映象區。
4) irom啟動(booting)
irom啟動設定之後,boot映象區僅位址為0x00000000~0x00007fff的32kb區域有效,且對應為6410內部的i_rom區低32kb位元組0x08000000~0x08007fff。
順便提及一下,i_rom主要實現的功能是在系統啟動之後,執行一些核心、外設初始化,搬移啟動**到stepping stone區域,然後跳轉到該區域執行後續的booting。
ARM記憶體對映
主儲存空間 main memory area 6410核心與主儲存空間通過spine匯流排連線,主儲存為位址空間0x0 0x6fffffff,大小為1792mb的一片區域 其中主儲存空間在6410內部劃分為以下幾部分 boot映象區位於6410定址空間的0x0 0x07ffffff 128mb 位置...
ARM位址對映
重對映之後,一般原來的位址依然有效。也就是說,可能兩個位址,對應乙個儲存單元。arm晶元的位址重對映 對映就是一一對應的意思。重對映就是重新分配這種一一對應的關係。我們可以把儲存器看成乙個具有輸出和輸入口的黑盒子,如下圖所示,輸入量是位址,輸出的是對應位址上儲存的資料。當然這個黑盒子是由很複雜的半導...
關於ARM的統一編制與記憶體對映機制
arm是統一編址的,也就是外設和記憶體進行統一的編址,共同形成了4g實體地址空間 32位為例子 大家知道操作外設時,實際上操作的是讀寫裝置相關的暫存器,這些與外設相關的暫存器與不同操作模式下r0 r15那些暫存器是不同的,這些暫存器並不是所謂的物理上的暫存器,實際上是所謂的io埠,通常會有控制 狀態...