s3c2440 SDRAM实验
来源:互联网 发布:java 线程死锁 编辑:程序博客网 时间:2024/06/06 00:03
由于S3C2440得内部只有4kb SRAM, 所以运行不了大于4kb以上的代码, 需要外接SDRAM才能实现。
需要了解查看芯片手册行地址和列地址、刷新周期,每个BANK大小:
s3c2440控制器的外设地址如下:
从图中可以看出每个BANK地址空间为128M ,BANK1~BANK5只可以接SROM(SROM means SROM or SRAM type memory),BANK6、BANK7既可以接SROM,还可以接SDRAM,起始地址为:0x30000000,这两个BANk可以软件选择其大小。
实验选择的两个32M的16 位的SDRAM组成一个32位宽度64M的内部存储器,如图:
实验代码如下:
#define MEM_CTL_BASE 0x48000000void memsetup(void){ int i; volatile unsigned long *p = (unsigned long *)MEM_CTL_BASE; const sdram_reg_config_val[] = { 0x22011110, //BWSCON 0x00000700, //BANKCON0 0x00000700, //BANKCON1 0x00000700, //BANKCON2 0x00000700, //BANKCON3 0x00000700, //BANKCON4 0x00000700, //BANKCON5 0x00018005, //BANKCON6 0x00018005, //BANKCON7 0x008C07A3, //REFRESH 0x000000B1, //BANKSIZE 0x00000030, //MRSRB6 0x00000030, //MRSRB7 }; for (i = 0; i < 13; i++) { p[i] = sdram_reg_config_val[i]; }}void copy_steppingstone_to_sdram(void){ unsigned int *pdwSrc = (unsigned int*)0; unsigned int *pdwDes = (unsigned int*)0x30000000; while(pdwSrc < (unsigned int*)4096) { *pdwDes++ = *pdwSrc++; }}
值得注意的是刷新周期计算:
这里未使用PLL, SDRAM时钟频率等于晶振时钟频率12M,
刷新周期:64ms/8k = 7.8125us.
R_CNT = 2^11 +1 -12*7.8125=1955;
REFRESH = 0X008C0000 + 1955 = 0X008C07A3;
其它寄存器内容则可在芯片手册查看。
阅读全文
0 0
- s3c2440 SDRAM实验
- S3C2440-SDRAM
- S3C2440 SDRAM
- S3C2440 SDRAM内存驱动
- S3C2440 SDRAM内存驱动
- S3C2440 SDRAM内存驱动
- S3C2440 SDRAM内存驱动 .
- S3C2440 SDRAM内存驱动
- S3C2440 SDRAM内存驱动
- S3C2440 SDRAM内存驱动
- s3c2440的sdram原理
- S3C2440 外接 SDRAM
- S3C2440 SDRAM内存驱动
- S3C2440 SDRAM内存驱动
- S3c2440的sdram
- S3C2440 SDRAM内存驱动
- s3c2440的SDRAM配置
- S3C2440 SDRAM内存驱动
- Windows配置GitBook
- TFS2013 数据库链接sqlserver express(2012)
- SpringBoot项目在IntelliJ IDEA中实现热部署
- SQL Server之存储过程基础知识
- 第十四周
- s3c2440 SDRAM实验
- Echart的angularjs封装
- 如何在windows下安装配置pyspark notebook
- 更改Visual Studio 的主题设置
- 观察者模式【Observer Pattern】
- 水果消除(DPS)
- python 爬虫动态加载网站
- 第2章 在 HTML 中使用 JavaScript <script>元素
- 自定义MVC