嵌入式系统实验一-存储器实验

更新时间:2024-02-29 19:46:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《嵌入式系统》课程实验报告 2015年春季

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

学生姓名: 所在班级: 指导教师:

记分及评价:

项目满分 5分 得 分

一、实验名称

存储器实验

二、实验目的

了解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的自刷新和掉电模式。

《嵌入式系统》课程实验报告 2015年春季

五、实验结果

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

六、练习

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

#include \

void memory_test(void) {

int i;

UINT16T data; int memError=0; UINT16T *pt;

《嵌入式系统》课程实验报告 2015年春季

uart_printf(\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(\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(\ break; }

pt++; }

if(memError==0)

uart_printf(\}

本文来源:https://www.bwwdw.com/article/sjja.html

Top