天天看點

記憶體編址(位址總線上)

ARM下編址隻有統一編址,IO端口跟記憶體空間統一進行編址,通路IO端口時,跟通路記憶體一樣的方式進行通路,但是隻是一個位址,并不會通過實體記憶體來通路外設的IO端口,是以不帶作業系統時(MMU并未打開),晶片送到位址總線上的就是實際的實體位址,然後通過總線送給實體記憶體,ARM位址總線32位,是以一共可以通路4G的位址空間,但是因為記憶體跟IO端口統一編址,是以晶片能通路的實際實體記憶體并沒有4G大小,實際大小是4G減去IO端口所占用的空間大小,實體記憶體一般在總線上配置設定低端位址,IO空間一般配置設定高端位址,是以通路外部裝置時,其實隻是一個基位址加偏移,偏移的數值才是實際通路外設的寄存器,而基位址隻是為了總線可以識别外設,因為總線上外挂着很多外設,是以需要通過基位址來區分具體要通路哪個外設。

晶片在上電啟動時,那時候ram還未初始化,是以總線上前4K位址用來映射ROM裡的程式,作為啟動程式,初始化ram等裝置。後面才用來通路實體記憶體。