170 likes | 346 Views
实验一 存储器实验. 1 实验目的 2 实验设备 3 实验内容 4 实验原理 5 实验操作步骤. 1 实验目的. 通过实验熟悉 ARM 的内部存储空间分配。 熟悉用寄存器配置存储空间的方法。 掌握对存储区进行访问的方法。. 2 实验设备. 硬件: Embest S3CEV40 实验平台, Embest ARM 标准 / 增强型仿真器套件, PC 机。 软件: Embest IDE 2004 集成开发环境, Windows 2000/NT/XP 。. 3 实验内容.
E N D
实验一 存储器实验 • 1实验目的 • 2实验设备 • 3实验内容 • 4实验原理 • 5实验操作步骤
1实验目的 • 通过实验熟悉ARM的内部存储空间分配。 • 熟悉用寄存器配置存储空间的方法。 • 掌握对存储区进行访问的方法。
2实验设备 硬件:Embest S3CEV40实验平台,Embest ARM标准/增强型仿真器套件,PC机。 软件:Embest IDE 2004集成开发环境,Windows 2000/NT/XP。
3实验内容 • 掌握S3C44B0X处理器对存储空间的配置和读写访问的方法。使用汇编和C语言编程实现对RAM的字、半字和字节的读写。
4实验原理 • 存储控制器 • 大/小ENDIAN模式选择 • BANK0总线宽度 存储器地址分配图 Bank6/Bank7地址 大/小ENDIAN模式选择 数据宽度选择
实验原理 存储器控制专用寄存器 总线宽度/等待控制寄存器(BWSCON) Bank控制寄存器(BANKCONn: nGCS0-nGCS5) Bank控制寄存器(BANKCONn: nGCS6-nGCS7) 刷新控制寄存器(REFRESH) BANK大小寄存器(BANKSIZE) 模式设置寄存器(MRSR)
实验原理 • 寄存器的配置示例: • ldr r0, =SMRDATA • ldmia r0, {r1-r13} • ldr r0, =0x01c80000 ; BWSCON Address • stmia r0, {r1-r13} • SMRDATA: • .long 0x22221210 ; BWSCON • .long 0x00000600 ; GCS0 • .long 0x00000700 ; GCS1 • .long 0x00000700 ; GCS2 • .long 0x00000700 ; GCS3
.long 0x00000700 ; GCS4 .long 0x00000700 ; GCS5 .long 0x0001002a ; GCS6, EDO DRAM(Trcd=3, Tcas=2, ;Tcp=1, CAN=10bit) .long 0x0001002a ; GCS7, EDO DRAM .long 0x00960000 + 953 ; Refresh(REFEN=1, TREFMD=0, ;Trp=3, Trc=5, Tchr=3) .long 0x0 ; Bank Size, 32MB/32MB .long 0x20 ; MRSR 6(CL=2) .long 0x20 ; MRSR 7(CL=2)
实验原理 • 存储器(SROM/DRAM/SDRAM)地址线连接如下表所示,数据宽度不同,连接方式也不同。
片选信号 选择的接口或器件 NGCS0 FLASH NGCS6/NSCS0 SDRAM NGCS1 A20 A19 A18 0 0 0 CS1 USB 0 0 1 CS2 固态硬盘 0 1 0 CS3 IDE 0 1 1 CS4 1 0 0 CS5 1 0 1 CS6 8-SEG 1 1 0 CS7 ETHERNET 1 1 1 CS8 LCD 实验原理 片选信号设置
外围器件 片选信号 片选控制寄存器 地址空间 FLASH NGCS0 BANKCON0 0X0000_0000~0X01BF_FFFF SDRAM NGCS6 BANKCON6 0X0C00_0000~0X0DF_FFFF USB CS1 BANKCON1 0X0200_0000~0X0203_FFFF 固态硬盘 CS2 BANKCON1 0X0204_0000~0X0207_FFFF IDE(IOR/W) CS3 BANKCON1 0X0208_0000~0X020B_FFFF IDE(KEY) CS4 BANKCON1 0X020C_0000~0X020F_FFFF IDE(PDIAG) CS5 BANKCON1 0X0210_0000~0X0213_FFFF 8-SEG CS6 BANKCON1 0X0214_0000~0X0217_FFFF ETHERNET CS7 BANKCON1 0X0218_0000~0X021B_FFFF LCD CS8 BANKCON1 0X021C_0000~0X021F_FFFF NOUSE NGCS2 BANKCON2 0X0400_0000~0X05FF_FFFF KEYBOARD NGCS3 BANKCON3 0X0600_0000~0X07FF_FFFF NOUSE NGCS4 BANKCON4 0X0800_0000~0X09FF_FFFF NOUSE NGCS5 BANKCON5 0X0A00_0000~0X0BFF_FFFF NOUSE NGCS7 BANKCON7 0X0E00_0000~0X1FFF_FFFF 实验原理 外围地址空间分配:
实验原理 • 电路设计 • Flash连接电路 • SDRAM连接电路
ZI RODATA RW CODE RO RO 内存分配 存放静态变量/常量 Image_ZI_Base Image_RW_Base 0x0C000000 存放应用程序代码 Image_RO_Base 0x0 非易失性存储器
5实验操作步骤 • 准备实验环境。使用Embest仿真器连接目标板,使用Embest S3CEV40实验板附带的串口线连接实验板上的UART0和PC机的串口。 • 在PC机上运行windows自带的超级终端串口通信程序(波特率115200、1位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。 • 使用EmbestIDE通过Embest仿真器连接实验板,打开实验例程目录下Memory_test子目录下的Memory_Test.ews例程,编译链接通过后连接目标板,执行下载操作。
实验操作步骤 • 打开Memory1窗口,键入地址0x0C010000; 打开Memory2窗口,键入地址0x0C010200。 • 打开Rwrams.s文件,在LDR r2,=0x0C010000; 行设置断点;打开Rwramc.c文件,在cRWramtest函数*ptr = 0xAA55AA55;行设置断点。 • 运行程序。程序停在LDR r2,=0x0C010000;行处,观察Memory1窗口数据内容,单步运行程序并注意观察运行前后Memory1窗口数据的变化;结合实验介绍,分析掌握汇编语言程序访问RAM的方法。
实验操作步骤 • 当程序执行Rwramc.c文件内最后一条语句时,全速运行程序。程序停在*ptr = 0xAA55AA55;行处,观察Memory2窗口数据内容,单步运行程序并注意观察运行前后Memory2窗口数据的变化;结合实验介绍,分析掌握高级语言程序访问RAM的方法。 • 理解和掌握实验后,完成实验练习题。
实验题目 • 题目1. 对内存地址0XC409000开始的255个字节内存单元填入0x01----0xff,并将这255个字节内存单元中的内容拷贝到0XC009500开始的内存中。用四种方法实现其拷贝:单字节、双字节、4字节、16字节。 • 题目2. 对开发平台上实际内存0XC400100开始的100字数据单元填入0X11111111----0X11111174,将数据拷贝到0XC000400开始的内存,将0XC000400开始的每个字单元进行64位累加,结果送入其后容闲内存单元,并通过串口显示起始和目标地址信息。