嵌入式系统实验一-存储器实验学习资料

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统实验一-存

储器实验

《嵌入式系统》课程实验报告

学生姓名:

所在班级:

指导教师:

记分及评价:

一、实验名称

存储器实验

二、实验目的

了解S3C2410X处理器的内部存储空间分配;

掌握对存储区配置的方法;

掌握对存储区进行读写访问的方法。

三、实验内容

熟练使用命令脚本文件对ARM存储控制器进行正确配置。

使用C语言编程,实现对RAM的读写访问。

四、实验原理

S3C2410A的存储器控制器提供访问外部存储器所需要的存储器控制信号,具有以下特性:

●支持小/大端(通过软件选择)。

●地址空间:每个bank有128 MB(总共有8个bank,共1 GB)。

●除bank0只能是16/32位宽之外,其他bank都具有可编程的访问位宽(8/16/32位)。

●总共有8个存储器bank(bank0~bank7):

一其中6个用于ROM,SRAM等;

一剩下2个用于ROM,SRAM,SDRAM等。

● 7个固定的存储器bank(bank0~bank6)起始地址。

●最后一个bank(bank7)的起始地址是可调整的。

●最后两个bank(bank6和bank7)的大小是可编程的。

●所有存储器bank的访问周期都是可编程的。

●总线访问周期可以通过插入外部等待来扩展。

●支持SDRAM的自刷新和掉电模式。

五、实验结果

超级终端上显示一下信息:

六、练习

编写程序对SRAM进行字节的读写访问。

#include "2410lib.h"

void memory_test(void)

{

int i;

UINT16T data;

int memError=0;

UINT16T *pt;

uart_printf("\n Memory Test(%XH-%XH):WR\n",_RAM_STARTADDRESS + 0x00E00000, _RAM_STARTADDRESS + 0x00F00000);

pt=(UINT16T *)(_RAM_STARTADDRESS + 0x00E00000); // memory write

while((UINT32T)pt < (_RAM_STARTADDRESS + 0x00F00000))

{

*pt=(UINT16T)pt;

pt++;

}

// memory read

uart_printf("\n Memory Test(%XH-%XH):RD\n", _RAM_STARTADDRESS + 0x00E00000, _RAM_STARTADDRESS + 0x00F00000);

pt=(UINT16T *)(_RAM_STARTADDRESS + 0x00E00000);

while((UINT32T)pt < (_RAM_STARTADDRESS + 0x00F00000))

{

data=*pt;

if(data!=(UINT16T)pt)

{

memError=1;

uart_printf("\n\b\bFAIL:0x%X=0x%X\n",i,data);

break;

}

pt++;

}

if(memError==0)

uart_printf("\n\b\b O.K.\n");

}

相关文档
最新文档