arm的存儲器
① arm中存儲器的實際地址是如何確定的是CPU直接分配好的嗎
存儲器是可以映射成為不同的地址的。
一般來說,ARM處理器由於是32位的,所以可以訪問的地址空間為4G。在這些地址空間內,實際的每個物理存儲器,可以被映射在任意的地址上。你可以查看所使用的CPU手冊來確定,每個存儲器是怎麼被映射的。下面舉個例子說明一下。
ATMEL公司的AT91SAM7S256,ARM7TDMI內核,內部集成256KB Flash和64K SRAM。其中Flash被默認映射在0地址處,也就是說你訪問0x0地址訪問的就是Flash。但是,Flash還有一個地址:0x100000,你訪問這個地址和訪問0x0實際上是一個地方。就好比是你家開了兩個門一樣,入口不同,但是進的地方是一樣的。而SRAM則被映射在0x200000地址處。
系統啟動後,在MCR寄存器內寫入1,這時CPU會調整存儲器的映射關系,會把SRAM映射在0x0地址處,也就是說你現在訪問0x0實際上訪問的是SRAM的0x200000地址。
其他的許多支持外部存儲器的(比如帶NAND Flash控制和SDRAM控制器的)CPU,都可以把外部存儲器映射到4G的地址空間內。它們的說明書絕對會有相對的說明,有一個圖,叫地址空間映射表,你一看就明白了。
② arm晶元自身帶內存嗎
現在嵌入式的發展已經很好了,arm裡面有內存!arm的存儲結構有:RAM區俗稱內存,ROM區俗稱程序存儲器,還有有的arm還集成了EPROM非易失性存取器!這里邊ROM區最大,然後是RAM區。
舉個通俗的例子吧,arm就好像一台計算機,ROM就是存儲用戶的程序的,一般燒寫的代碼都是存儲到這里邊的,類似於一台計算機的硬碟,RAM是arm用於計算和存儲臨時性文件,arm一失電就丟失了,類似於計算機中的內存!而EPROM則是存儲一些信息,比如說變數的計算值啊,使其掉電後重新上電依然有效而不會丟失!
當然嵌入式上面的存儲都很小,如果你想存儲一些大文件,比如說MP3格式的文件,或者視頻等很大的文件,arm上面肯定存儲不下,一般都是通過存儲到外部的存儲器中如:SD卡等存儲介質!然後通過文件系統從外部存儲器讀取數據然後在arm晶元進行處理
③ ARM存儲器bank什麼意思
在單片機中的bank其實就是分塊,,,就像我們將rom空間分成page一樣,因為有些mcu是8位的,它的定址范圍有限,,所以就必須利用切頁的方式區分開.每一部分是一個bank.
原理如上具體你要看datasheet,不同ARM的bank分法不一樣,對應的IO也不一樣。許多AMR對各個bank連接的外設也會有限制,看datasheet吧,一般就在前幾章里。