下面是S3C2440特殊功能寄存器地址:
#define rBANKCON0 (*(volatileunsigned *)0x48000004) //Boot ROM control
#define rBANKCON1 (*(volatileunsigned *)0x48000008) //BANK1 control
#define rBANKCON2 (*(volatileunsigned *)0x4800000c) //BANK2 cControl
……
在學習的過程我一直在想這些地址為什麼是這樣的,想起來一次就在網上找資料,但每次都沒有得到很好的結果。最近在學習AMBA(AdvancedMicrocontroller Bus Architecture)的時候終於解開這個謎團了,哈哈!!!
先看下面這個圖,看完後估計就知道了一半啦。
圖1 內存映射
下面就來詳細分析。
圖2 S3C2440結構框圖
先介紹一下AMBA。AMBA(Advanced Micro-Controller Bus Architecture)是由ARM Limited公司推出的On-Chip Bus片上總線規范,是目前芯片總線的主流標准。一開始AMBA 1.0只有ASB和APB,為了節省面積,這時候的總線協定都是采用3態的總線,到後來的AMBA 2.0版本,新增了AHB總線,共定義了3組總線:高性能總線(AdvancedHigh Performance Bus,AHB)、系統總線(AdvancedSystem Bus,ASB)和外設總線(Advanced PeripheralBus,APB)。
圖3 典型的基於AMBA總線的系統
關於AMBA總線的更多的內容可上網查看,中文的資料都有很多。由圖2可知AHB總線上掛載了LCD控制器、中斷控制器、USB Host控制器、電源管理、NAND控制器、Camera控制器、存儲器控制器以及AHB to APB橋和DMA控制器。APB總線上掛載了UART控制器、I2C控制器、USB Device控制器、I3S控制器SDI/MMC控制器、GPIO、Watchdog/定時器、RTC、ADC、SPI、AC97。