TQ2440国嵌学院gboot-内存初始化
The S3C2440A has the following features:
— Little/Big endian ( selectable by a software)
— Address space: 128Mbytes per bank (total 1GB/8 banks)
— Programmable access size (8/16/32-bit) for all banks except bank0 (16/32-bit)
— Total 8 memory banks
Six memory banks for ROM, SRAM, etc.
Remaining two memory banks for ROM, SRAM, SDRAM, etc .
— Seven fixed memory bank start address
— One flexible memory bank start address and programmable bank size
— Programmable access cycles for all memory banks
— External wait to extend the bus cycles
— Supporting self-refresh and power down mode in SDRAM
翻译如下:
在S3C2440A存储器控制器提供所需要的外部存储器存取的存储器控制信号。
该S3C2440A具有以下特点:
- 小/大端(可选择由软件)
-地址空间:每个bank128Mbytes(共1GB/8bank)
- 可编程访问的大小(8/16/32位),适用于所有银行,除了区0(16位/ 32位)
-共8个内存bank
六个内存bankROM,SRAM等。
剩余的两个存储体的ROM,SRAM,SDRAM,等等。
-七个固定内存区的起始地址
- 一个灵活的存储体的起始地址和可编程bank规模
-对所有存储体的可编程访问周期
- 外部等待延长总线周期
- 支持自刷新和掉电模式的SDRAM
左边的图可知,左边是从nor flash启动,也就是SDRAM,nor flash的地址0x30000000,这就是我们在之前所以只为什么卸载到0X30000000这个地址中
右边的图可知,右边是从nand flash启动
下面开始设定BANK0~5
从上图可以看出,BANKCON0~5保持默认0X0700,因为SDram是bank6,bank7中,因此不需要设定
开始设定BANK6~7
由于使用的是SDRAM,因此对应如下:
也就是0b 11 0000 0000 0000 0001=0x00180001
下一个寄存器是
得到0x008c04f5
下面是banksize寄存器
得到0x000000b1
最后一组
得到0x00000030,因为只需要设定CAS的潜伏期,在时序图中有介绍
代码如下:
#define mem_contrl 0x48000000
init_sdram:
0://进入循环
mem_data:
TQ2440国嵌学院gboot内存初始 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)