初识 存储控制器
来源:互联网 发布:淘宝开店经验总结 编辑:程序博客网 时间:2024/06/07 13:15
存储控制器提供了访问外部设备的所有信息(统一编址)。
s3c2440存储控制器的特性:
1、s3c2440A的存储控制器提供了访问外部存储的所有控制信号。27个地址信号,32为数据信号,8个片选信号,还有读写控制信号。
2、总共有8个存储器bank0,bank2,....bank7
3、bank0到bank5为固定128M,bank6和bank7的容量可编程改变(2/4/8/16/32/64/128M,最大可1G)。
4、bank0可以作为引导ROM,其数据线宽只能是16和32位,其他存储器的数据线宽可以是8位,16位,32位。
5、7个固定存储器bank(0-6)起始地址,bank7的开始地址和bank6结束地址相连接,但二者的容量必须相等。
6、所有存储器bank的访问周期是可编程的。
7、支持SDRAM的自刷新和掉电模式。
注意:8个128M的bank,一共只有1G,剩余3G,有一部分是寄存器的地址,还有一部分没有使用,系统上电后从bank0执行bootloader程序。
要访问一个地址需要的条件:
1、地址线
2、数据线
3、时钟/频率
4、所访问的芯片特性
比如要访问SDRAM则需要知道:行地址,列地址,bank,数据位宽,刷新周期
步骤如下:
1、CPU发出片选信号nSCS0有效,他选中SDRAM芯片。
2、SDRAM中有4个L-Bank,需要2个地址线来确定是哪一个
3、对被选中的芯片进行统一的行/列(存储单元)寻址。
4、找到存储单元后,被选中的芯片就要进行统一的数据传输了。
存储控制器共有13个寄存器,BANK0-BANK5只需要设置BWSCON和BANKCONx两个寄存器,BANK6、BANK7外接SDRAM时,还要设置REFRESH,BANKSIZE,MRSRB6,MRSRB7,等4个寄存器,具体如何设置则要参照手册,从而获得相应功能。
.equ MEM_CTL_BASE,0x48000000;存储控制器的13个寄存器起始地址.equ SDRAM_BASE,0x30000000;SDRAM的绝对起始地址.text.gloabl _start_start:bldisable_watch_dog;关看门狗blmemsetup;配置存储控制器blcopy_to_sdram;把Nand Flash开始的4KB复制到SDRAM中ldrpc,=on_sdram;跳转到SDRAM中继续执行on_sdram:ldr sp,=0x34000000bl main;进入main函数halt_loop:bhalt_loopdisable_watch_dog:mov r1,#0x53000000;看门狗控制寄存器mov r2,#0x00000000str r2,[r1];写入0关闭看门狗mov pc,lr;lr连接寄存器,调回memsetup:mov r1,#MEM_CTL_BASE;13个存储控制寄存器的起始地址adr1r2,mem_cfg_val;把配置信息放入r2add r3,r1,#52;r1放入r3然后r1+52 放入r11:ldr r4,[r2],#4;把配置信息放入r2的地方,然后r2=r2+4str r4,[r1],#4;把r4的内容放到r1(存储控制寄存器)代表的地方,然后r1=r1+4cmp r1,r3;对比看配置信息是否存入寄存器bne 1b;若没有,则跳回1标记处mov pc,lr;回到lr所知的地方运行copy_to_sdram:mov r1,#0;0地址ldr r2,=SDRAM_BASE;SDRAM起始地址放入r2mov r3,#4*1024;r3=4KB1:ldr r4,[r1],#4;Nand Flash的起始地址内容放入r4,然后r1=r1+4str r4,[r2],#4;把r4内容放入SDRAM的起始地址,然后r2=r2+4cmp r1,r3;比较r1和r3,看是否复制完bne 1b;若没完,则跳到标记处继续mov pc,lr;程序计数器回到lr所指的地址继续运行mem_cfg_val:.long0x22011110.long0x00000700.long0x00000700.long0x00000700.long0x00000700.long0x00000700.long0x00000700.long0x00018005.long0x00018005.long0x008c07A3.long0x000000B1.long0x00000030.long0x00000030
·
- 初识 存储控制器
- 存储控制器
- 存储控制器
- 存储控制器
- 存储控制器
- 存储控制器
- 初识设备控制器
- 初识版本控制器svn
- iOS Dev 初识 导航控制器
- S3C2440--存储控制器
- S3c2440的存储控制器
- 2440的存储控制器
- ARM------ 存储控制器
- S3C2440存储控制器
- 存储控制器SDRAM实验
- S3C2440的存储控制器
- S3C2440 存储控制器
- s3c2440 存储控制器
- SharedPreferences保存数据
- 34个漂亮的应用程序后台管理系统界面(系列二)
- Jquery checkbox全选简单用法
- Android从零开始(三)
- Toast的使用
- 初识 存储控制器
- 简单数据结构实现——队列
- 非常有用的免费UI设计工具和资源
- BitmapFactory decoding大文件中产生OutOfMemoryError解决方案
- 数据操作后,页面alert提示例子3-后台js打印提示信息并重定向
- 30个免费下载高质量精美照片素材的网站
- 打造ios客户端产品的一些经验教训
- Flex 的数据绑定观察
- EventThread线程对VSync的分发