17
实实 实实实实实 1 实实实实 2 实实实实 3 实实实实 4 实实实实 5 实实实实实实

实验一 存储器实验

  • Upload
    davin

  • View
    373

  • Download
    0

Embed Size (px)

DESCRIPTION

实验一 存储器实验. 1 实验目的 2 实验设备 3 实验内容 4 实验原理 5 实验操作步骤. 1 实验目的. 通过实验熟悉 ARM 的内部存储空间分配。 熟悉用寄存器配置存储空间的方法。 掌握对存储区进行访问的方法。. 2 实验设备. 硬件: Embest S3CEV40 实验平台, Embest ARM 标准 / 增强型仿真器套件, PC 机。 软件: Embest IDE 2004 集成开发环境, Windows 2000/NT/XP 。. 3 实验内容. - PowerPoint PPT Presentation

Citation preview

Page 1: 实验一   存储器实验

实验一 存储器实验

1 实验目的2 实验设备3 实验内容4 实验原理5 实验操作步骤

Page 2: 实验一   存储器实验

1 实验目的

通过实验熟悉 ARM 的内部存储空间分配。熟悉用寄存器配置存储空间的方法。掌握对存储区进行访问的方法。

Page 3: 实验一   存储器实验

硬件: Embest S3CEV40 实验平台,Embest ARM 标准 / 增强型仿真器套件, PC 机。软件: Embest IDE 2004 集成开发环境, Windows 2000/NT/XP 。

2 实验设备

Page 4: 实验一   存储器实验

3 实验内容

掌握 S3C44B0X 处理器对存储空间的配置和读写访问的方法。使用汇编和C 语言编程实现对 RAM 的字、半字和字节的读写。

Page 5: 实验一   存储器实验

4 实验原理

存储器地址分配图 Bank6/Bank7地址

大 /小 ENDIAN模式选择

Bank6/Bank7 地址

大/小endian模式

数据宽度选择

数据宽度选择

1. 存储控制器

2. 大 / 小 ENDIAN 模式选择 3. BANK0 总线宽度

Page 6: 实验一   存储器实验

实验原理

存储器控制专用寄存器总线宽度 / 等待控制寄存器( BWSCON )

Bank 控制寄存器 (BANKCONn: nGCS0-nGCS5)

Bank 控制寄存器 (BANKCONn: nGCS6-nGCS7)

刷新控制寄存器( REFRESH )

BANK 大小寄存器( BANKSIZE )

模式设置寄存器( MRSR )

总线宽度总线宽度

//等待寄存器

等待寄存器(BW S C ON ) 0x 0 1C 80 0 00

(BW S C ON ) 0x 0 1C 80 0 00 初始值初始值

0x 00 00 000x 00 00 00

[ 7] [1 1] [1 5][ 19 ][ 23 ][ 27 ][3 1][ 7] [1 1] [1 5][ 19 ][ 23 ][ 27 ][3 1]

::

S T1 ~ ST 7S T1 ~ ST 7

确定确定

Ba nk 1 ~7Ba nk 1 ~7

上的上的

S RAMS RAM

是否使用是否使用

U B / LBU B / LB

。。

00表示不使 用

表示不使 用U B/ L B

U B/ L B,引脚,引脚

[ 1 4[ 1 4

::

1 1]1 1]

定义 为定义 为

nW B E[3nW B E[3

::

0 ]0 ]

;;

11表示 使用

表示 使用

U B / LBU B / LB

, 引脚, 引脚

[ 14[ 14::

11 ]11 ]定义为

定义为nB E[ 3

nB E[ 3:

:0]

0]。。

[ 6] [1 0] [1 4][ 18 ][ 22 ][ 26 ][3 0][ 6] [1 0] [1 4][ 18 ][ 22 ][ 26 ][3 0]

::

WS 1~W S 7WS 1~W S 7

确定确定

Ba nk 1~ 7Ba nk 1~ 7

上的上的

SR AMSR AM

存储 器的存储 器的

等待状态 (不技持等待状态 (不技持

DR AMDR AM

或或

S D RAMS D RAM

))

00

——

等待禁止等待禁止

11

——

等待使 能等待使 能

[ 5[ 5::

4][ 94][ 9

::

8]8]

……

[ 2 9[ 2 9

::

2 8]2 8]

::

DW 1~ DW 7DW 1~ DW 7

确定确定

Ba nk 1~ B an k7Ba nk 1~ B an k7

的宽 度的宽 度

0 00 0

——

88位位

0 10 1

——

1616位位

1010

——

3232位位

[ 2[ 2::

1]1]:

:DW0

DW0指示

指示B an k 0

B an k 0数据总线宽度(只 读),由数据总线宽度(只 读),由

OM[ 1OM[ 1

::

0 ] 000 ] 00

——

88位位

0 10 1

——

1616位位

1010

——

3232位位

[ 0][ 0]::

E N DI A NE N DI A N

确定存储模式( 只读),由引脚电平 确定确定存储模式( 只读),由引脚电平 确定

00

——

小端模式小端模式

11

——

大端模式大端模式

20101111

3 ~ 07 ~ 41 1 ~81 5 ~1 21 9 ~1 62 3 ~2 02 7 ~2 43 1 ~2 8

Page 7: 实验一   存储器实验

实验原理寄存器的配置示例:ldr r0, =SMRDATAldmia r0, {r1-r13}ldr r0, =0x01c80000 ; BWSCON Addres

sstmia r0, {r1-r13}SMRDATA: .long 0x22221210 ; BWSCON.long 0x00000600 ; GCS0.long 0x00000700 ; GCS1.long 0x00000700 ; GCS2.long 0x00000700 ; GCS3

Page 8: 实验一   存储器实验

.long 0x00000700 ; GCS4.long 0x00000700 ; GCS4

.long 0x00000700 ; GCS5.long 0x00000700 ; GCS5

.long 0x0001002a ; GCS6, EDO .long 0x0001002a ; GCS6, EDO DRAM(Trcd=3, Tcas=2, DRAM(Trcd=3, Tcas=2, ;Tcp=1, CAN=10bit);Tcp=1, CAN=10bit).long 0x0001002a ; GCS7, EDO .long 0x0001002a ; GCS7, EDO DRAMDRAM.long 0x00960000 + 953 ; Refresh(REF.long 0x00960000 + 953 ; Refresh(REFEN=1, TREFMD=0, EN=1, TREFMD=0, ;Trp=3, Trc=5, Tchr=3);Trp=3, Trc=5, Tchr=3).long 0x0 ; Bank Size, 32.long 0x0 ; Bank Size, 32MB/32MBMB/32MB.long 0x20 ; MRSR 6(CL=.long 0x20 ; MRSR 6(CL=2)2).long 0x20 ; MRSR 7(CL=.long 0x20 ; MRSR 7(CL=2)2)

Page 9: 实验一   存储器实验

存储器( SROM/DRAM/SDRAM )地址线连接如下表所示,数据宽度不同,连接方式也不同。

实验原理

Page 10: 实验一   存储器实验

实验原理

片选信号 选择的接口或器件  

NGCS0 FLASH 

NGCS6/NSCS0 SDRAM 

NGCS1 A20 A19 A18

0 0 0 CS1 USB0 0 1 CS2 固态硬盘0 1 0 CS3

IDE0 1 1 CS41 0 0 CS51 0 1 CS6 8-SEG1 1 0 CS7 ETHERNET1 1 1 CS8 LCD

片选信号设置

Page 11: 实验一   存储器实验

外围器件 片选信号 片选控制寄存器 地址空间

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

NO USE NGCS2 BANKCON2 0X0400_0000~0X05FF_FFFF

KEYBOARD

NGCS3 BANKCON3 0X0600_0000~0X07FF_FFFF

NO USE NGCS4 BANKCON4 0X0800_0000~0X09FF_FFFF

NO USE NGCS5 BANKCON5 0X0A00_0000~0X0BFF_FFFF

NO USE NGCS7 BANKCON7 0X0E00_0000~0X1FFF_FFFF

实验原理外围地址空间分配:

Page 12: 实验一   存储器实验

实验原理

电路设计

Flash 连接电路

SDRAM 连接电路

44B0X SST39VF160FLASH

A(20..1) A(19..0)

DQ(15..0)D(15..0)

nGCS0

nOE

nW E

nCE

nOE

nW E

Page 13: 实验一   存储器实验

内存分配

Image_ZI_Base

Image_RW_Base

0x0C000000

Image_RO_Base

0x0

非易失性存储器

存放静态变量 / 常量

存放应用程序代码RO

RW

ZI

RO

CODE

RODATA

Page 14: 实验一   存储器实验

5 实验操作步骤

1. 准备实验环境。使用 Embest 仿真器连接目标板,使用 Embest S3CEV40 实验板附带的串口线连接实验板上的 UART0 和 PC 机的串口。

2. 在 PC 机上运行 windows 自带的超级终端串口通信程序(波特率 115200 、 1 位停止位、无校验位、无硬件流控制);或者使用其它串口通信程序。

3. 使用 EmbestIDE 通过 Embest 仿真器连接实验板,打开实验例程目录下 Memory_test 子目录下的 Memory_Test.ews 例程,编译链接通过后连接目标板,执行下载操作。

Page 15: 实验一   存储器实验

实验操作步骤

4. 打开 Memory1 窗口,键入地址 0x0C010000 ; 打开 Memory2 窗口,键入地址 0x0C010200 。

5. 打开 Rwrams.s 文件,在 LDR r2,=0x0C010000; 行设置断点;打开 Rwramc.c 文件,在 cRWramtest 函数 *ptr = 0xAA55AA55; 行设置断点。

6. 运行程序。程序停在 LDR r2,=0x0C010000; 行处,观察 Memory1 窗口数据内容,单步运行程序并注意观察运行前后 Memory1 窗口数据的变化;结合实验介绍,分析掌握汇编语言程序访问 RAM 的方法。

Page 16: 实验一   存储器实验

实验操作步骤

7. 当程序执行 Rwramc.c 文件内最后一条语句时,全速运行程序。程序停在 *ptr = 0xAA55AA55; 行处,观察 Memory2 窗口数据内容,单步运行程序并注意观察运行前后 Memory2 窗口数据的变化;结合实验介绍,分析掌握高级语言程序访问RAM 的方法。

8. 理解和掌握实验后,完成实验练习题。

Page 17: 实验一   存储器实验

实验题目题目 1. 对内存地址 0XC409000 开始的 255 个字节内

存单元填入 0x01----0xff, 并将这 255 个字节内存单元中的内容拷贝到 0XC009500 开始的内存中。用四种方法实现其拷贝:单字节、双字节、 4 字节、 16 字节。

题目 2. 对开发平台上实际内存 0XC400100 开始的 100 字数据单元填入 0X11111111----0X11111174 ,将数据拷贝到 0XC000400 开始的内存,将 0XC000400 开始的每个字单元进行 64 位累加,结果送入其后容闲内存单元,并通过串口显示起始和目标地址信息。