Learning ADSP-TS201系列--SDRAM存储器
2013-02-27 10:54
225 查看
原创作品,转载请注明原作者及地址!
by 飞鸿惊雪
http://blog.csdn.net/niyufeng
2 Learning ADSP-TS201系列--EZ-KIT Lite评估板硬件资源
3 Learning ADSP-TS201系列--Flag Pins按键和LED灯
4 Learning ADSP-TS201系列--Interrupt Pin
SDRAM:0x4000 0000 - 0x407f ffff,总共8M字大小的空间,数据总线配置成32bit,则有32MB大小。
Flash: 0x3000 0000 - 0x3007 ffff, 512KB。
可以通过指针的方式直接指定物理地址来使用SDRAM!
运行到初始化SDRAM全部清零之后,可以看到从0x4000 0000开始的存储空间都全部清零:
然后,往0x4000 0000首地址里写入"OK, Hello TS201 !" 字符串,可以看到0x4000 0000开始的存储空间内容发生了变化(好像一个字符使用了一个world??):
最后printf输出在终端:
by 飞鸿惊雪
http://blog.csdn.net/niyufeng
Learning ADSP-TS201系列--索引
1 Learning ADSP-TS201系列--重要参考2 Learning ADSP-TS201系列--EZ-KIT Lite评估板硬件资源
3 Learning ADSP-TS201系列--Flag Pins按键和LED灯
4 Learning ADSP-TS201系列--Interrupt Pin
Learning ADSP-TS201系列--SDRAM存储器
评估板中,两片DSP共享2chips x 4M x 32bit的32MB SDRAM:1 存储空间分配
SDRAM:0x4000 0000 - 0x407f ffff,总共8M字大小的空间,数据总线配置成32bit,则有32MB大小。
Flash: 0x3000 0000 - 0x3007 ffff, 512KB。
可以通过指针的方式直接指定物理地址来使用SDRAM!
2 SDRAM设置
使用SDRAM时SYSCON,SDRCON两个寄存器要设置/* * 初始化SDRAM * 主要设置SYSCON and SDRCON两个寄存器 * SYSCON = 0x0018 9067 * SDRCON = 0x0000 5983 * *SDRAM地址32MB: 0x4000 0000 - 0x407F FFFF * */
3 编程实验
写个简单的程序,先往SDRAM中写些数据,然后读取,测试下SDRAM。#include <stdio.h>
#include <string.h>
#include <builtins.h>
#include <sysreg.h>
#include <defts201.h>
/*----------- Init SDRAM ------------*/
#define __defined_init_sdram() do{ \
__builtin_sysreg_write(__SYSCON, SYSCON_MP_WID64 | \
SYSCON_MEM_WID64 | \
SYSCON_MSH_PIPE2 | \
SYSCON_MSH_WT0 | \
SYSCON_MSH_IDLE | \
SYSCON_MS1_PIPE1 | \
SYSCON_MS1_WT0 | \
SYSCON_MS1_IDLE | \
SYSCON_MS0_SLOW | \
SYSCON_MS0_WT3 | \
SYSCON_MS0_IDLE); \
\
__builtin_sysreg_write(__SDRCON, SDRCON_INIT | \
SDRCON_RAS2PC5 | \
SDRCON_PC2RAS2 | \
SDRCON_REF3700 | \
SDRCON_PG256 | \
SDRCON_CLAT2 | \
SDRCON_ENBL); } while(0)
void main(void)
{
/* * 初始化SDRAM * 主要设置SYSCON and SDRCON两个寄存器 * SYSCON = 0x0018 9067 * SDRCON = 0x0000 5983 * *SDRAM地址32MB: 0x4000 0000 - 0x407F FFFF * */
__defined_init_sdram();
memset((void *)0x40000000, 0, 0x800000);//初始化,全部清零
char *dest=(char *)0x40000000;
strcpy(dest, "OK, Hello TS201 !");
printf("\n%s\n%s\n", dest, dest+4);
while(1)
__builtin_idle();
}
运行到初始化SDRAM全部清零之后,可以看到从0x4000 0000开始的存储空间都全部清零:
然后,往0x4000 0000首地址里写入"OK, Hello TS201 !" 字符串,可以看到0x4000 0000开始的存储空间内容发生了变化(好像一个字符使用了一个world??):
最后printf输出在终端:
相关文章推荐
- Learning ADSP-TS201系列--定时计数器Timer
- Learning ADSP-TS201系列--EZ-KIT Lite评估板硬件资源
- Learning ADSP-TS201系列--Flag Pins按键和LED灯
- Learning ADSP-TS201系列--Interrupt Pin
- 第26章 FMC—扩展外部SDRAM—零死角玩转STM32-F429系列
- 常见存储器概念辨析:RAM、SRAM、SDRAM、ROM、EPROM
- 常见存储器概念辨析:RAM、SRAM、SDRAM、ROM、EPROM、EEPROM、Flash
- TQ2440系列二 存储器地址分配
- 目标跟踪学习系列六:semi-supervised Boosting using Visual Similarity Learning 学习
- Neural Networks for Machine Learning(系列)letcure 1
- Learning python 系列6
- Deep learning系列(十三)Transfer learning 和 caffe Fine-tuning
- 单片机系列知识2--存储器(1)
- scikit-learn: machine learning in Python系列(一)
- 深度学习DeepLearning.ai系列课程学习总结:13. 超参数调优、Batch正则化理论及深度学习框架学习
- Inception系列4_Xception: Deep Learning with Depthwise Separable Convolutions
- 单片机系列知识3--存储器(2)
- 目标跟踪学习系列五:Real-time visual tracking via online weighted multiple instance learning(WMIL)学习
- TQ2440系列二 存储器地址分配
- 备忘:SDRAM、NOR Flash、NAND Flash等几个常见的存储器辨析