Memory Controller
S3C2440对外引出了27根地址线ADDR0~ADDR26,它最多能够寻址128MB,而S3C2440的寻址空间可以达到1GB,这是由于 S3C2440将1GB的地址空间分成了8个BANKS(Bank0~Bank7),BANK0~BANK6共7个BANK的起始地址是固定的,BANK7的起始地址可编程选择,BANK6、BANK7的地址空间大小是可编程控制的;其中每一个BANK对应一根片选信号线nGCS0~nGCS7,当访 问BANKx的时候,nGCSx管脚电平拉低,用来选中外接设备, S3C2440通过8根选信号线和27根地址线,就可以访问1GB。如图所示。

左侧对应不使用Nandflash启动时,存储器Bank分布图,通常在这种启动方式里选择Norflash启动,将Norflash焊接在Bank0, 系统上电后,CPU从Bank0的开始地址0x00000000开始取指运行。
右侧是选择从Nandflash引导启动,系统上电后,CPU会自动将Nandflash里前4K的数据复制到S3C2440内部一个4K大小SRAM类型存储器里,然后启动。
S3C2440是32位芯片,理论上讲可以达到4GB的寻址范围,除去上述8个BANK用于连接外部设备,还有一部分的地址空间是用于设备特殊功能寄存器,其余地址没有被使用。
S3C2440设备寄存器地址空间:
| 外接设备 | 起始地址 | 结束地址 | 
| 存储控制器 | 0x48000000 | 0x48000030 | 
| USB Host控制器 | 0x49000000 | 0x49000058 | 
| 中断控制器 | 0x4A000000 | 0x4A00001C | 
| DMA | 0x4B000000 | 0x4B0000E0 | 
| 时钟和电源管理 | 0x4C000000 | 0x4C000014 | 
| LCD控制器 | 0x4D000000 | 0x4D000060 | 
| NAND FLASH控制器 | 0x4E000000 | 0x4E000014 | 
| 摄像头接口 | 0x4F000000 | 0x4F0000A0 | 
| UART | 0x50000000 | 0x50008028 | 
| 脉宽调制计时器 | 0x51000000 | 0x51000040 | 
| USB设备 | 0x52000140 | 0x5200026F | 
| WATCHDOG计时器 | 0x53000000 | 0x53000008 | 
| IIC控制器 | 0x54000000 | 0x5400000C | 
| IIS控制器 | 0x55000000 | 0x55000012 | 
| I/O端口 | 0x56000000 | 0x560000B0 | 
| 实时时钟RTC | 0x57000040 | 0x5700008B | 
| A/D转换器 | 0x58000000 | 0x58000010 | 
| SPI | 0x59000000 | 0x59000034 | 
| SD接口 | 0x5A000000 | 0x5A000040 | 
| AC97音频编码接口 | 0x5B000000 | 0x5B00001C | 
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号