第五章 基于S3C44B0X的嵌入式系统应用开发实例
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
S3C44B0X复位后的存储器地址分配如下图:
从S3C44B0X复位后的存储器地址分配图可以看 出:
特殊功能寄存器位于0x01C00000到0x02000000的4M
空间内; Bank0-Bank5的起始地址和空间大小都是固定的; Bank6的起始地址是固定的,空间可以配置为 2/4/8/16/32M。 Bank7的空间大小和Bank6一样是可变的,也可以配置 为2/4/8/16/32M。 Bank7的起始地址是可变的。 如果同时使用Bank6/Bank7,则要求连接相同容量的 存储器,而且地址空间在物理上是连续的。
Bank1:上接非线性Flash,当做系统硬盘使
用,可以构造文件系统,存放海量数据。(推 荐使用)
Bank6:SDRAM,起始地址为
0xC000000。
5.2.3 S3C44B0X存储控制器相关引 脚
和存储器相关的引脚的配置: Bank0---NGCS0 用来选通启动存储器。启动存储 器在开机复位后,就应正常工作,因此由引脚设置。
其他存储体的总线宽度只能在系统复位后由程序进行设定, 由地址为0x01c8000的特殊寄存器BWSCON的相应位决定。
关于存储器引脚的配置
例:
S3C44B0X ADDR20~1 OM0 OM1 DATA15~0 nGCS0 nOE nWE
SST39VF160 A19~0 DQ15~0 nCE nOE nWE
只要将CPU上的相应Bank连线(nGCS[7:0])接到外 设芯片的片选引脚上, 便可以根据相应的地址进行存储器 或外设操作。
Bank0:通常,使用Bank0上的NOR
Flash放置系统BootLoader ,系统上电后, PC指针自动指向Bank0的第一个单元,开始 进行系统自举(运行系统初始化程序 BootLoader)。系统自举完成后,便从硬盘 中将系统文件和用户应用程序复制到 SDRAM内存中执行。
5.3 S3C44B0X I/O端口功能及应用开发
5.3.1 S3C44B0X I/O功能概述 5.3.2 S3C44B0X 端口功能配置 5.3.3 S3C44B0X I/O端口特殊功能控制描述 5.3.4 S3C44B0X I/O端口应用编程
5.3.1 S3C44B0X I/O端口功能概述
mrsr7cl2s3c44b0x存储器应用编程?观察上面寄存器介绍中的寄存器地址可以发现13个寄存器分布在从0x01c80000开始的连续地址空间所以上面的程序先将各个寄存器需要配置的值从起始地址为smrdata的区域取出来值从起始地址为smrdata的区域取出来然后可以利用指令stmiar0r1r13实现将配置好的寄存器的值依次写入到相应的寄存器中这就完成了存储器13个控制寄存器的配置
Bank6 和Bank7 的详细的地址和空间大小的关系可以参考下表:
地址 2 MB 4 MB 8 MB 16 MB 32 MB
Bank6
起始地址 结束地址 0xc00,0000 0xc1F,FFFF 0xc00,0000 0xc3F,FFFF 0xc00,0000 0xc7F,FFFF 0xc00,0000 0xcFF,FFFF 0xc00,0000 0xDFF,FFFF
Bank7
起始地址 结束地址 0xc20,0000 0xc3F,FFFF 0xc40,0000 0xc7F,FFFF 0xc80,0000 0xD00,0000 0xE00,0000 0xFFF,FFFF
0xcFF,FFFF 0xDFF,FFFF
典型系统中存储体的分配情况
存储体 Bank0 Bank1 Bank2 Bank3 Bank4 Bank5 Bank6 Bank7 与存储体的接口 NOR Flash( BootLoader ) NAND Flash (硬盘) USB接口 LCD显示模块 保留 保留 系统内存SDRAM 保留
S3C44B0X有71个通用可编程多功能输入输出引脚, 可分为以下7类端口: 两个9位输入输出端口(PortE和PortF); 两个8位输入输出端口(PortD和PortG); 一个16位输入输出端口(PortC); 一个10位输出端口(PortA); 一个11位的输出端口(PortB)。
S3C44B0X特性
内核:2.5V
I/O : 3.0 V 到3.6 V
运行频率:最高为66MHz
封装:160 LQFP / 160 FBGA
LQFP:薄型QFP QFP:方型扁平式封装 FBGA:塑料球栅阵列封装
基于S3C44B0X的嵌入式系统体系结构
LCD显示
线性Flash (BIOS) SDRAM (系统内存) 非线性Flash (硬盘)
Bank大小寄存器(BANKSIZE)(1个) 用来设置Bank6/Bank7的存储区大小。
BANKSIZE
位
描述 设置为1,则SCLK仅在SDRAM存取周期产 生,这个特征将使功耗降低,推荐设置为1: 0=标准SCLK 1=低功耗SCLK 无
初始状 态
SCLKEN
Reserved
[4]
[3]
0
I/O端口是微处理器最基本的接口,通过这 个端口可以以数字的方式和外部的电路连 接,进而进行电路的控制和信号的检测。 以数字的方式来说,一个端口代表一个位, 可以表示0或1两种值。 如果一个引脚的状态是由处理器来决定, 称之为输出引脚。 如果引脚的状态是由外部的电路或器件决 定,那么就是输入引脚。
2. 端口数据寄存器(PDATn n=A-G)(7个): ——如果这些端口被设定为输出端口,输出数 据可以被写入到PDATn的相应的位;如果被设定为 输入端口,输入数据可以被读到PDATn的相应位。 3. 端口上拉寄存器(PUPn n=C-G)(5个):
——用于设定端口相应位是否接上拉电阻。端口
第5章
基于S3C44B0X嵌入式系统 应用开发实例
5.1 S3C44B0X处理器介绍
Samsung S3C44B0X微处理器是三星公司 专为手持设备和一般应用提供的高性价比和 高性能的微控制器解决方案。 片内集成ARM7TDMI核,工作在66MHz, 采用0.25μm CMOS工艺制造,并在 ARM7TDMI核基本功能的基础集成了丰富的 外围功能模块,便于低成本设计嵌入式应用 系统。
BootLoader
计算机系统的引导装载程序是系统加电后运 行的第一段软件代码。 引导装载程序一般由两部分组成(PC机):
BIOS。一段固件程序,负责完成硬件检测和资
源分配。 BootLoader。将操作系统内核从硬盘上读入内 存中,然后跳转到内核的入口点,从而启动操作 系统。 在嵌入式系统中,由于硬件资源的限制,通常没有 BIOS,所以整个系统的加载启动全部由 BootLoader处理。
5.2.2 S3C44B0X存储器空间划分
地址空间:
包含8个地址空间,每个地址空间的大小为
32M字节,总共有256M字节的地址空间; 8个地址空间中: 6个地址空间可以用于ROM、SRAM等存储 器; 2个地址空间用于ROM、SRAM、 FP/EDO/SDRAM等存储器; 7个起始地址固定的地址空间; 1个起始地址可变的地址空间;
S3C44B0X存储器应用编程
观察上面寄存器介绍中的寄存器地址可以发现, 13个寄存器分布在从0x01c80000开始的连续地址 空间,所以上面的程序先将各个寄存器需要配置的 值从起始地址为SMRDATA的区域取出来,然后可 以利用指令“stmia r0, {r1-r13}”实现将配置好的 寄存器的值依次写入到相应的寄存器中,这就完成 了存储器13个控制寄存器的配置。
⑵(BANKCONn: nGCS6-nGCS7)
S3C44B0X存储控制器的特殊功能寄存器
DRAM/SDRAM刷新控制寄存器(REFRESH) (1 个)
用来决定 DRAM/SDRAM 刷新允许、刷新模式、RAS 预充电时间、RAS和CAS最短时间、CAS保持时间、刷新 计数值。
S3C44B0X存储控制器的特殊功能寄存器
5.2.5 S3C44B0X存储器应用编程
存储器编程实例(包括存储控制器的特殊功能寄 存器的配置、存储器的读写,通过一个简单例子, 了解存储器的应用编程。):
13个存储控制寄存器的配置示例
ldr r0, =SMRDATA ldmia r0, {r1-r13} ldr r0, =0x01c80000 ; BWSCON Address stmia r0, {r1-r13} SMRDATA: dcd 0x22221210 ; BWSCON dcd 0x00000600 ; BANKCON0 dcd 0x00000700 ; BANKCON1 dcd 0x00000700 ; BANKCON2 dcd 0x00000700 ; BANKCON3 dcd 0x00000700 ; BANKCON4 dcd 0x00000700 ; BANKCON5 dcd 0x00018000 ; BANKCON6, SDRAM (Trcd = 2clocks) dcd 0x00018008 ; BANKCON7, no use dcd 0x00860459 ; Refresh dcd 0x0 ; BANKSIZE, 32MB/32MB dcd 0x20 ; MRSR 6 (CL=2) dcd 0x20 ; MRSR 7 (CL=2)
5.2.4 S3C44B0X存储控制器的特殊功 能寄存器(13个)
总线宽度/等待控制寄存器(BWSCON)(1个) 用来决定存储器总线宽度、等待允许、高 低字节使能。见P.229
S3C44B0X存储控制器的特殊功能寄存器
Bank控制寄存器 ( BANKCONn )(8个) 用来确定存储器读写时序。 ⑴ (BANKCONn: nGCS0-nGCS5)
设备控制器所实现的功能主要是通过对特殊功能 寄存器的设置来进行的。
S3C44B0X
的 引 脚 分 布 图
S3C44BOX系列微控制器的引脚一般是 多个功能复用,但是同一引脚在同一时刻只 能使用其中一个功能,这可以通过设置 PCONx寄存器来选择。
GPIO
P0.0
TXD0
PWM1输出
5.2 S3C44B0X存储控制器功能及应用 开发
基于 ARM7TDMI的 32位微处理器 S3C44B0X
USB接口
串行通信接口
JTAG调试接口
TCP/IP协议 键盘输入
CAN BUS
S3C44B0X的体系结构的功能框图:
控制器基本结构
设备控制器 嵌入式 处理器 核
状态寄存器
特殊功能寄存器
内部总线
模式寄存器 控制寄存器 数据寄存器
引脚
外部设 备
5.3.2 S3C44B0X 端口功能配置
每个端口都可以通过软件设置来满足各种各 样的系统设计要求。每个端口的功能通常都 要在主程序开始前被定义。
见P.237表4-46 S3C44B0X 端口设置
5.3.3 I/O端口特殊功能控制描述
I/O端口的各种功能主要是通过对端口各 个特殊功能寄存器进行设置实现的。下面通 过对各个寄存器的说明来分别介绍I/O端口所 能完成的功能。 1. 端口配置寄存器(PCONn n=A-G)(7 个) ——用来定义端口各引脚功能。 S3C44B0X的大多数引脚都是多功能引脚。 (每个引脚最多有4种功能) 。 见P.239-242 表4-47—4-53
0
BK76MAP
Bank6/Bank7 存储映射 000=32MB/32MB 100=2MB/2MB [2:0] 101=4MB/4MB 110=8MB/8MB 111=16MB/16MB
000
S3C44B0X存储控制器的特殊功能寄存器
Bank6—Bank7模式设置寄存器(MRSR) (2个) 用来决定Bank6、Bank7的存储模式。
5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 S3C44B0X存储控制器概述 S3C44B0X存储器空间划分简述 S3C44B0X存储控制器相关引脚 S3C44B0X存储控制器的特殊功能寄存器 S3C44B0X存储器应用编程
5.2.1 S3C44B0X存储控制器概述
在基于ARM核的嵌入式应用系统中一般包含多 种类型的存储器件,如Flash、ROM、SRAM和 SDRAM等。不同类型的存储器对速度、数据宽 度等的要求也不同。为了实现对这些不同类型的 存储器进行管理,就需要有一个存储器管理控制 器。 S3C44B0X的存储器管理控制器提供支持片外存 储器访问需要的控制信号,实现对片外存储器的 管理。