第5章 应用系统设计与调试(1)

第5章 应用系统设计与调试(1)

本章主要介绍基于S3C4510B的硬件系统的详细设计步骤、实现细节、硬件系统的调试方法等,通过对本章的阅读,可以使绝大多数的读者具有根据自身的需求、设计特定应用系统的能力。

尽管本章所描述的内容为基于S3C4510B的应用系统设计,但由于ARM体系结构的一致性、以及外围电路的通用性,本章的所有内容对设计其他基于ARM内核芯片的应用系统,也具有很大的参考价值。

本章的主要内容包括:

- 嵌入式系统设计的基本方法。

- S3C4510B概述。

- S3C4510B的基本工作原理

- 基于S3C4510B的硬件系统设计详述

- 硬件系统的调试方法
5.1 系统设计概述

根据用户需求,设计出特定的嵌入式应用系统,是每一个嵌入式系统设计工程师应该达到的目标。嵌入式应用系统的设计包含硬件系统的设计和软件系统设计两个部分,并且这两部分的设计是互相关联、密不可分的,嵌入式应用系统的设计经常需要在硬件和软件的设计之间进行权衡与折中。因此,这就要求嵌入式系统设计工程师具有较深厚的硬件和软件基础,并具有熟练应用的能力。这也是嵌入式应用系统设计与其他的纯粹的软件设计或硬件设计最大的区别。

本章以北京微芯力科技有限公司(www.winsilicon.com)设计生产的ARM Linux评估开发板为原型,详细分析系统的软、硬件设计步骤、实现细节以及调试技巧等。ARM Linux评估开发板的设计以学习与应用兼顾为出发点,在保证用户完成ARM技术的学习开发的同时,考虑了系统的扩展、电路板的面积、散热、电磁兼容性以及安装等问题,因此,该板也可作为嵌入式系统主板,直接应用在一些实际系统中。

图5.1.1是ARM Linux评估开发板的结构框图,各部分基本功能描述如下:

- 串行接口电路用于S3C4510B系统与其他应用系统的短距离双向串行通讯;

- 复位电路可完成系统上电复位和在系统工作时用户按键复位;

- 电源电路为5V到3.3V的DC-DC转换器,给S3C4510B及其他需要3.3V电源的外围电路供电;

- 10MHz有源晶振为系统提供工作时钟,通过片内PLL电路倍频为50MHz作为微处理器的工作时钟;

- FLASH存储器可存放已调试好的用户应用程序、嵌入式操作系统或其他在系统掉电后需要保存的用户数据等;

- SDRAM存储器作为系统运行时的主要区域,系统及用户数据、堆栈均位于SDRAM存储器中;

- 10M/100M以太网接口为系统提供以太网接入的物理通道,通过该接口,系统可以10M或100Mbps的速率接入以太网;

- JTAG接口可对芯片内部的所有部件进行访问,通过该接口可对系统进行调试、编程等;

- IIC存储器可存储少量需要长期保存的用户数据;

- 系统总线扩展引出了数据总线、地址总线和必须的控制总线,便于用户根据自身的特定需求,扩展外围电路。5.2 S3C4510B概述

5.2.1 S3C4510B及片内外围简介

在进行系统设计之前,有必要对ARM Linux评估开发板上的ARM芯片S3C4510B及其工作原理进行比较详细的介绍,读者只有对该微处理器的工作原理有了较详细的了解,才能进行特定应用系统的设计。

Samsung公司的S3C4510B是基于以太网应用系统的高性价比16/32位RISC微控制器,内含一个由ARM公司设计的16/32位ARM7TDMI RISC处理器核,ARM7TDMI为低功耗、高性能的16/32核,最适合用于对价格及功耗敏感的应用场合。

除了ARM7TDMI核以外,S3C4510B比较重要的片内外围功能模块包括:

— 2个带缓冲描述符(Buffer Descriptor)的HDLC通道

— 2个UART通道

— 2个GDMA通道

— 2个32位定时器

— 18个可编程的I/O口。

片内的逻辑控制电路包括:

— 中断控制器

— DRAM/SDRAM控制器

— ROM/SRAM和FLASH控制器

— 系统管理器

— 一个内部32位系统总线仲裁器

— 一个外部存储器控制器。

S3C4510B结构框图如图5.2.1所示。

S3C4510B的特性描述如下:

体系结构

— 用于嵌入式以太网应用的集成系统

— 全16/32的RISC架构

— 支持大、小端模式。内部架构为大端模式,外部存储器可为大、小端模式

— 内含效率高、功能强的ARM7TDMI处理器核

— 高性价比、基于JTAG接口的调试方案

— 边界扫描接口

系统管理器

— 支持ROM/SRAM、FLASH、DRAM和外部I/O以8/16/32位的方式操作

— 带总线请求/应答引脚的外部总线控制器

— 支持EDO/常规或SDRAM存储器

— 可编程的访问周期(可设定0~7个等待周期)

— 4字的写缓冲

— 高性价比的从存储器到外围的DMA接口

一体化的指令/数据Cache

— 一体化的8K Cache

— 支持LRC(近期最少使用)替换算法

— Cache可配置为内部SRAM

IIC接口

— 仅支持主控模式

— 串行时钟由波特率发生器生成

Ethernet控制器

— 带猝发模式的DMA引擎

— DMA发送/接收缓冲区(256字节发送,256字节接收)

— MAC发送/接收FIFO缓冲区(80字节发送,16字节接收)

— 数据对准逻辑

— 支持端模式变换

— 100M/10Mbps的工作速率

— 与IEEE802.3标准完全兼容

— 提供MII和7线制10Mbps接口

— 站管理信号生成

— 片内CAM(可达21个目的地址)

— 带暂停特性的全双工模式

— 支持长/短包模式

— 包拆装PDA生成

HDLC (High-Level Data Link Control) 高层数据链路协议  

— HDLC协议特征:标志检测与同步;零插入与删除;空闲检测和发送;FCS生成和检测(16位);终止检测与发送

— 地址搜索模式(可扩展到四字节)

— 可选择CRC模式或非CRC模式

— 用于时钟恢复的数字PLL模块

— 波特率生成器

— 发送和接收支持NRZ/NRZI/FM/曼切斯特数据格式

— 回环与自动回波模式

— 8字的发送和接收FIFO

— 可选的1字或4字数据传送方式

— 数据对准逻辑

— 可编程中断

— Modem接口

— 高达10Mbps的工作速率

— 基于8位位组的HDLC帧长度

— 每个HDLC有2通道DMA缓冲描述符用于发送和接收

DMA控制器

— 用于存储器到存储器、存储器到UATR、UATR到存储器数据传送的2通道通用DMA控制器,不受CPU干预

— 可由程序或外部DMA请求启动

— 可增减源地址或目的地址,无论8位、16位或32位数据传输

— 4种数据猝发模式

UART

— 2个可工作于DMA方式或中断方式的UART模块

— 支持5、6、7、8位的串行数据发送和接收

— 波特率可编程

— 1位或2位停止位

— 奇/偶校验

— 间隔信号的生成与检测

— 奇偶校验、覆盖和帧错误检测

— ×16时钟模式

— 支持红外发送和接收

定时器

— 2个可编程32位定时器

— 间隔模式或触发模式工作

可编程I/O口

— 18个可编程I/O口

— 可分别配置为输入模式、输出模式或特殊功能模式

中断控制器

— 21个中断源,包括4个外部中断源

— 正常中断或快速中断模式(IRQ、FIQ)

— 基于优先级的中断处理

PLL

— 外部时钟可由片内PLL倍频以提高系统时钟

— 输入频率范围:10~40MHz

— 输出频率可以是输入时钟的5倍

工作电压

— 3.3V,偏差不超过5%

工作温度

— 0oC~70oC

工作频率

— 最高为50MHz

封装形式

— 208脚QFP封装
5.2.2 S3C4510B的引脚分布及信号描述

各引脚信号描述如下:

表5-2-1 S3C4510B的引脚信号描述

 

引脚号

     

XCLK

80

I

S3C4510B的系统时钟源。如果CLKSEN为低电平,通过PLL倍频的输出时钟作为S3C4510B的内部系统时钟。如果CLKSEN为高电平,XCLK直接作为S3C4510B的内部系统时钟。

MCLKO/SDCLK 

77

O

系统时钟输出。SDCLKSDRAM提供时钟信号

CLKSEL

83

I

时钟选择。如果CLKSEL为低电平,PLL输出时钟作为S3C4510B的内部系统时钟。如果CLKSEL为高电平,XCLK直接作为S3C4510B的内部系统时钟。

nRESET

82

I

复位信号。nRESETS3C4510B的复位信号,要使系统可靠复位,nRESET必须至少保持64个主时钟周期的低电平。

CLKOEN

76

I

时钟输出允许/禁止。高电平允许系统时钟信号输出,低电平禁止。

TMODE

63

I

测试模式选择。低电平为正常工作模式,高电平为芯片测试模式。

FILTER

55

AI

如果使用PLL,应在该引脚和数字地之间接820pF的陶瓷电容。

TCK

58

I

JTAG测试时钟。JTAG测试时钟信号用于切换状态信息和检测数据的输入输出。该引脚在片内下拉。

TMS

59

I

JTAG测试模式选择。该信号控制S3C4510BJTAG测试操作。该引脚在片内上拉。

TDI

60

I

JTAG测试数据输入。JTAG测试操作的过程中,该信号将指令和数据串行送入S3C4510B。该引脚在片内上拉。

TDO

61

O

JTAG测试数据输出。JTAG测试操作的过程中,该信号将指令和数据串行送出S3C4510B

nTRST

62

I

JTAG复位信号,低电平复位。异步复位JTAG逻辑。该引脚在片内上拉。

ADDR[21:0]/

ADDR[10]/AP

117-110

129-120

135-132

O

地址总线。22位的地址总线可寻址每一个ROM/ SRAM组、FLASH存储器组、DRAM组和外部I/O组的4M字(64M字节)的地址范围。

XDATA[31:0]

141-136

154-144

166-159

175-169

I/O

外部数据总线(双向、32位)。S3C4510B支持外部8位,16位,32位的数据宽度。

nRAS[3:0]/

nSDCS[3:0]

94,91,

90,89

O

DRAM行地址锁存信号。S3C4510B支持最多4DRAM组,每个nRAS输出控制一组。nSDCS[3:0]用作SDRAM的片选信号。

nCAS[3:0]

nCAS[0]

/nSDRAS

nCAS[1]

/nSDCAS

nCAS[2]/CKE

98,97,

96,95

O

DRAM列地址锁存信号。无论访问哪一个DRAM组,4nCAS输出信号均表示字节选择。nSDRAS作为SDRAM的行地址锁存信号,nSDCAS作为SDRAM的列地址锁存信号,CKE作为SDRAM的时钟使能信号。

nDWE

99

O

DRAM写使能信号。该引脚为DRAM组提供写操作信号。(nWBE[3:0]用于为ROM/SRAM/FLASH存储器组提供写操作信号。)

nECS[3:0]

70,69,

68,67

O

外部I/O片选信号。可以有4个外部I/O组映射到存储空间,每一个外部I/O组的地址范围最大为16KBnECS提供每一个外部I/O组的片选信号。

nEWAIT

71

I

外部等待信号。该信号用于在访问外部I/O设备时,由外设插入等待周期。

nRCS[5:0]

88-84,75

O

ROM/SRAM/FLASH片选信号。S3C4510B可访问多达6个的外部ROM/SRAM/FLASH组。

B0SIZE[1:0]

74,73

I

ROM/SRAM/FLASH存储器组0的数据总线宽度设定。ROM/SRAM/FLASH存储器组0常用于程序的启动。‘01’=字节(8位);‘10’=半字(16位);‘11’=字(32位);‘00’=保留

nOE

72

O

输出使能。当对存储器进行访问的时候,该信号控制存储器的输出使能。

nWBE[3:0]/

DQM[3:0]

107,

102-100

O

写字节使能。当对存储器进行写操作时,该信号控制存储器(DRAM除外)的写使能。对于DRAM存储器组,由nCAS[3:0]nDWE控制写操作。DQM用于SDRAM数据输入/输出的屏蔽信号。

ExtMREQ

108

I

外部总线控制器请求信号。外部总线控制器通过该引脚请求控制外部总线,当该信号有效时,S3C4510B将外部总线置为高阻状态,以便外部总线控制器取得对外部总线的控制。当ExtMACK信号为的电平时,S3C4510B重新取得对外部总线的控制权。

ExtMACK

109

O

外部总线应答信号。

MDC

50

O

管理数据时钟。该引脚产生MDIO数据输入输出时所需的时钟信号。

MDIO

48

I/O

管理数据输入/输出。当执行一个读数据的命令时,该引脚输入由物理层产生的数据,当执行一个写数据的命令时,由该引脚输出数据到物理层(PHY)。

LITTLE

49

I

小端模式选择引脚。当该引脚为高电平时,S3C4510B工作在小端模式,当该引脚为低电平时,工作在大端模式。该引脚在片内已下拉,因此,S3C4510B缺省工作在大端模式。

COL/COL_10M

38

I

冲突检测/10M冲突检测。该引脚显示是否检测到冲突。

TX_CLK/

TXCLK_10M

46

I

发送时钟/10M发送时钟。S3C4510BTX_CLK的上升沿驱动TXD[3:0]TX_EN,当工作在MII模式时,PHYTX_CLK的上升沿采样TXD[3:0]TX_EN。在发送数据时,TXCLK_10M10MPHY产生。

TXD[3:0]

LOOP_10M

TXD_10M

44,43,

40,39

O

发送数据/10M发送数据/10M回环测试。TXD[3:0]为发送数据引脚,TXD_10M10MPHY的发送数据引脚,LOOP_10M由控制寄存器的回环测试位驱动。

TX_EN/

TXEN_10M

47

O

发送使能/10M发送使能。

TX_ERR/

PCOMP_10M

45

O

发送错误/10M包压缩使能。

CRS/CRS_10M

28

I

载波侦听/10M载波侦听。

RX_CLK/

RXCLK_10M

37

I

接收时钟/10M接收时钟。RX_CLK为连续的时钟信号,当其频率为25MHz时,数据传输速率为100M,当其频率为2.5MHz时,数据传输速率为10M。在接收数据时,RXCLK_10M10MPHY产生。

RXD[3:0]

RXD_10M

3534

3330

I

接收数据/10M接收数据。

RX_DV/

LINK10M

29

I

接收数据有效/10M连接状态。

RX_ERR

36

I

接收错误。

TXDA

9

O

HDLC Ch-A发送数据。

RXDA

7

I

HDLC Ch-A接收数据。

nDTRA

6

O

HDLC Ch-A终端准备就绪。nDTRA引脚指示数据终端设备准备发送或接收。

nRTSA

8

O

HDLC Ch-A传送请求。

nCTSA

10

I

HDLC Ch-A传送清除。

nDCDA

13

I

HDLC Ch-A数据载波检测。

nSYNCA

15

O

HDLC Ch-A同步检测。

RXCA

14

I

HDLC Ch-A接收时钟。

TXCA

16

I/O

HDLC Ch-A发送时钟。

TXDB

20

O

HDLC Ch-B发送数据。

RXDB

18

I

HDLC Ch-B接收数据。

nDTRB

17

O

HDLC Ch-B终端准备就绪。

nRTSB

19

O

HDLC Ch-B传送请求。

nCTSB

23

I

HDLC Ch-B传送清除。

nDCDB

24

I

HDLC Ch-B数据载波检测。

nSYNCB

26

O

HDLC Ch-B同步检测。

RXCB

25

I

HDLC Ch-B接收时钟。

TXCB

27

I/O

HDLC Ch-B发送时钟。

UCLK

64

I

外部UART时钟输入。可由外部输入时钟作为UART时钟,通常由系统时钟提供UART时钟输入。

UARXD0

202

I

UART0数据接收。

UATXD0

204

O

UART0数据发送。

nUADTR0

203

I

UART0数据终端准备就绪。该输入信号通知S3C4510B,外设(或其他主机)已准备好发送或接收数据。

nUADSR0

205

O

UART0数据设备准备就绪。该输出信号通知外设(或其他主机),UART0已准备好发送或接收数据。

UARXD1

206

I

UART1数据接收。

UATXD1

4

O

UART1数据发送。

nUADTR1

3

I

UART1数据终端准备就绪。参见nUADTR0

nUADSR1

5

O

UART1数据设备准备就绪。参见nUADSR0

P[7:0]

185-179,

176

I/O

通用I/O口。

XINTREQ

[3:0]

P[11:8]

191-189,

186

I/O

外部中断请求信号,或作为通用I/O口。

NXDREQ[1:0]/P[13:12]

193,192

I/O

外部DAM请求信号,或作为通用I/O口。

nXDACK[1:0]/P[15:14]

195,194

I/O

外部DAM应答信号,或作为通用I/O口。

TOUT0/P[16]

196

I/O

定时器0溢出,或作为通用I/O口。

TOUT1/P[17]

199

I/O

定时器1溢出,或作为通用I/O口。

SCL

200

I/O

I2C串行时钟。

SDA

201

I/O

I2C串行数据。

VDDP

12141567892105118130155167177197

Power

I/O口电源。

VDDI

11315165103142157187207

Power

芯片内核电源。

VSSP

2224257798193106119131156168178198

GND

I/O口地。

VSSI

12325266104143158188208

GND

芯片内核地。

VDDA

53

Power

PLL电源

VSSA

54

GND

PLL

 

5.2.3 CPU内核概述及特殊功能寄存器(Special Registers

CPU内核概述

S3C4510B 的CPU内核是由ARM公司设计的通用32位ARM7TDMI微处理器核,图5.2.3为ARM7TDMI核的结构框图。整个内核架构基于RISC(Reduced Instruction Set Computer)规则。与CISC(Complex Instruction Set Computer)系统相比较,RISC架构的指令集和相关的译码电路更简洁高效。

ARM7TDMI处理器区别于其他ARM7处理器的一个重要特征是其独有的称之为Thumb的架构策略。该策略为基本ARM架构的扩展,由36种基于标准32位ARM指令集、但重新采用16位宽度优化编码的指令格式构成。

由于Thumb指令的宽度只为ARM指令的一半,因此能获得非常高的代码密度。当Thumb指令被执行时,其16位的操作码被处理器解码为等效的32位标准ARM指令,然后ARM处理器核就如同执行32位的标准ARM指令一样执行16位的Thumb指令。也即是Thumb架构为16位的系统提供了一条获得32位性能的途径。

ARM7TDMI内核既能执行32位的ARM指令集,又能执行16位的Thumb指令集,因此允许用户以子程序段为单位,在同一个地址空间使用Thumb指令集和ARM指令集混合编程,采用这种方式,用户可以在代码大小和系统性能上进行权衡,从而为特定的应用系统找到一个最佳的编程解决方案。

32位的ARM指令集由13种基本的指令类型组成,可分为如下四大类:

- 4类分支指令用于控制程序的执行流程、指令的特权等级和在ARM代码与Thumb代码之间进行切换。

- 3类数据处理指令用于操作片上的ALU、桶型移位器、乘法器以完成在31个32位的通用寄存器之间的高速数据处理。

- 3类加载/存储指令用于控制在存储器和寄存器之间的数据传输。一类为方便寻址进行了优化;另一类用于快速的上下文切换;第三类用于数据交换。

- 3类协处理器指令用于控制外部的协处理器,这些指令以开放统一的方式扩展用于片外功能指令集。

几乎所有的32位ARM指令都可以条件执行。

16位的Thumb指令集为32位ARM指令集的扩展,共包含36种指令格式,可分为如下四个功能组:

- 4类分支指令

- 12类数据处理指令,为标准ARM数据处理指令的一个子集

- 8类加载/存储寄存器指令

- 4类加载/存储乘法指令

在同一种处理模式下,每一条16位的Thumb指令都有对应的32位ARM指令。

工作状态

如前所述,ARM7TDMI内核支持两种工作状态,并总是处于其中一种工作状态。工作状态可通过软件或异常处理进行切换:

- ARM状态: 此时执行32位字对齐的ARM指令。

- Thumb状态: 此时执行16位半字对齐的Thumb指令。

操作模式:

ARM7TDMI内核支持7种操作模式:

- 用户模式:正常的程序执行状态。

- FIQ(Fast Interrupt Request)模式:用于支持特殊的数据传送与通道处理。

- IRQ(Interrupt ReQuest)模式:用于通用的中断处理。

- 管理模式:一种用于操作系统的保护模式。

- 中止模式:当数据或指令预取中止时进入该模式

- 系统模式:一种用于操作系统的特权用户模式。

- 未定义模式:当执行了未定义指令时进入该模式。

可用软件控制操作模式的切换,同时外部的中断和异常处理也会导致操作模式的切换。

绝大多数的用户应用程序运行在用户模式。

当系统响应中断或异常、或访问受保护的系统资源时,处理器会进入特权模式(除用户模式以外的所有模式)。

寄存器

S3C4510B内建37个32位的寄存器:31个通用寄存器,6个状态寄存器,但并不是所有的寄存器都能总是被访问到。在某一时刻寄存器能否访问由处理器的当前工作状态和操作模式决定。

根据微处理器内核的当前工作状态,可分别访问ARM状态寄存器集和Thumb状态寄存器集:

- ARM状态寄存器集包含16个可以直接访问的寄存器:R0~R15。除R15以外,其余的寄存器为通用寄存器,可用于存放地址或数据值。另外一个(第17个)寄存器是当前程序状态寄存器CPSR,用于保存状态信息。

- Thumb状态寄存器集是ARM状态寄存器集的一个子集。可以访问的寄存器有:8个通用寄存器R0~R7,程序计数器PC、堆栈指针寄存器SP、连接寄存器LR和当前程序状态寄存器CPSR。

在每一种特权模式下,都有对应的分组堆栈指针寄存器SP、连接寄存器LR和备份的程序状态寄存器SPSR。

Thumb状态寄存器集与ARM状态寄存器集的对应关系如下:

- Thumb状态下R0~R7寄存器与ARM状态下R0~R7寄存器是相同的。

- Thumb状态下的CPSR和SPSRs与ARM状态下的CPSR和SPSRs是相同的。

- Thumb状态下的SP、LR和PC直接对应ARM状态寄存器R13、R14和R15。

在Thumb状态下,寄存器R8~R15不属于标准寄存器集的一部分,但在必要的情况下,用户可以通过汇编语言程序访问他们,用作快速的临时存储将单元。

关于寄存器的详细描述,可参阅第二章编程模型的相关内容。

异常

当正常的程序执行流程被中断时,称为产生了异常。例如程序执行转向响应一个外设的中断请求。在优先处理异常时,处理器的当前状态必须保留,以便在异常处理完成之后程序流程能正常返回。并且,多个异常可能会同时发生。

为处理异常,S3C4510B使用内核的分组寄存器来保存当前状态,原来的PC值和CPSR的内容被拷贝到对应的R14(LR)和SPSR寄存器中,PC和CPSR中的模式位被调整到相应被处理的异常类型的值。

S3C4510B的内核支持7种类型的异常,每一种异常都有其固定的优先级和对应的特权处理器模式,如表5-2-2所示:

表5-2-2 S3C4510B的异常类型

   

进入模式

优先级

复位(Reset

管理模式

1(最高)

数据中止(Data Abort

中止模式

2

FIQ

FIQ模式

3

IRQ

IRQ模式

4

预取中止(Prefetch Abort

中止模式

5

未定义指令(Undefined Instruction

未定义模式

6(最低)

SWI

管理模式

6(最低)

 

S3C4510B的特殊功能寄存器

5-2-3S3C4510B片内的特殊功能寄存器描述。

分组

寄存器

偏移量

R/W

   

复位值

系统

管理器

SYSCFG

0x0000

/

系统配置寄存器

0x37FFFF91

CLKCON

0x3000

/

时钟控制寄存器

0x00000000

EXTACON0

0x3008

/

外部I/O时序寄存器1

0x00000000

EXTACON1

0x300C

/

外部I/O时序寄存器2

0x00000000

EXTDBWTH

0x3010

/

分组数据总线的宽度设置寄存器

0x00000000

ROMCON0

0x3014

/

ROM/ARAM/FLASH0控制寄存器

0x20000060

ROMCON1

0x3018

/

ROM/ARAM/FLASH1控制寄存器

0x00000060

ROMCON2

0x301C

/

ROM/ARAM/FLASH2控制寄存器

0x00000060

ROMCON3

0x3020

/

ROM/ARAM/FLASH3控制寄存器

0x00000060

ROMCON4

0x3024

/

ROM/ARAM/FLASH4控制寄存器

0x00000060

ROMCON5

0x3028

/

ROM/ARAM/FLASH5控制寄存器

0x00000060

DRAMCON0

0x302C

/

DRAM0控制寄存器

0x00000000

DRAMCON1

0x3030

/

DRAM1控制寄存器

0x00000000

DRAMCON2

0x3034

/

DRAM2控制寄存器

0x00000000

DRAMCON3

0x3038

/

DRAM3控制寄存器

0x00000000

REFEXTCON

0x303C

/

刷新与外部I/O控制寄存器

0x000083FD

以太网

控制器

(BDMA)

BDMATXCON

0x9000

/

BDMA接收控制寄存器

0x00000000

BDMARXCON

0x9004

/

BDMA发送控制寄存器

0x00000000

BDMATXPTR

0x9008

/

发送帧描述符起始地址寄存器

0x00000000

BDMARXPTR

0x900C

/

接收帧描述符起始地址寄存器

0x00000000

BDMARXLSZ

0x9010

/

接收帧最大长度寄存器

未定义

BDMASTAT

0x9014

/

BDMA状态寄存器

0x00000000

CAM

0x9100-

0x917C

CAM内容(共32字)

未定义

BDMATXBUF

0x9200-

0x92FC

/

BDMA Tx 缓冲测试模式地址(64)

未定义

BDMARXBUF

0x9800-

0x99FC

/

BDMA Rx 缓冲测试模式地址(64)

未定义

以太网

控制器

(MAC)

MACON

0xA000

/

以太网MAC控制寄存器

0x00000000

CAMCON

0xA004

/

CAM控制寄存器

0x00000000

MACTXCON

0xA008

/

MAC发送控制寄存器

0x00000000

MACTXSTAT

0xA00C

/

MAC发送状态寄存器

0x00000000

MADRXCON

0xA010

/

MAC接收控制寄存器

0x00000000

MACRXSTAT

0xA014

/

MAC接收状态寄存器

0x00000000

STADATA

0xA018

/

工作站管理数据寄存器

0x00000000

STACON

0xA01C

/

工作站管理控制与地址寄存器

0x00006000

CAMEN

0xA028

/

CAM使能寄存器

0x00000000

EMISSCNT

0xA03C

/

错误计数寄存器

0x00000000

EPZCNT

0xA040

中止计数寄存器

0x00000000

ERMPZCNT

0xA044

远程中止计数寄存器

0x00000000

ETXSTAT

0x9040

传送控制帧控制状态寄存器

0x00000000

HDLC

A通道

HMODE

0x7000

/

HDLC模式寄存器

0x00000000

HCON

0x7004

/

HDLC控制寄存器

0x00000000

HSTAT

0x7008

/

HDLC状态寄存器

0x00010400

HINTEN

0x700C

/

HDLC中断使能寄存器

0x00000000

HTXFIFOC

0x7010

/

TxFIFO帧持续寄存器

_

HTXFIFOT

0x7014

TxFIFO帧中止寄存器

_

HRXFIFO

0x7018

HDLC RxFIFO入口寄存器

0x00000000

HBRGTC

0x701C

HDLC波特率发生时间常数寄存器

0x00000000

HPRMB

0x7020

/

HDLC前缀常数寄存器

0x00000000

HSAR0

0x7024

/

HDLC站地址0寄存器

0x00000000

HSAR1

0x7028

/

HDLC站地址1寄存器

0x00000000

HSAR2

0x702C

/

HDLC站地址2寄存器

0x00000000

HSAR3

0x7030

/

HDLC站地址3寄存器

0x00000000

HMASK

0x7034

/

HDLC掩码寄存器

0x00000000

DMATxPTR

0x7038

/

DMA Tx缓冲描述符指针寄存器

0xFFFFFFFF

DMARxPTR

0x703C

/

DMA Rx缓冲描述符指针寄存器

0xFFFFFFFF

HMFLR

0x7040

/

最大帧长度寄存器

0xXXXX000

HRBSR

0x7044

/

DMA接收缓冲长度寄存器

0xXXXX0000

HDLC

B通道

HMODE

0x8000

/

HDLC模式寄存器

0x00000000

HCON

0x8004

/

HDLC控制寄存器

0x00000000

HSTAT

0x8008

/

HDLC状态寄存器

0x00010400

HINTEN

0x800C

/

HDLC中断使能寄存器

0x00000000

HTXFIFCO

0x8010

TxFIFO帧持续寄存器

_

HTXFIFOT

0x8014

TxFIFO帧中止寄存器

_

HRXFIFO

0x8018

HDLC RxFIFO入口寄存器

0x00000000

HBRGTC

0x801C

/

HDLC波特率发生时间常数寄存器

0x00000000

HPRMB

0x8020

/

HDLC前缀常数寄存器

0x00000000

HSAR0

0x8024

/

HDLC站地址0寄存器

0x00006000

HSAR1

0x8028

/

HDLC站地址1寄存器

0x00000000

HSAR2

0x802C

/

HDLC站地址2寄存器

0x00000000

HSAR3

0x8030

HDLC站地址3寄存器

0x00000000

HMASK

0x8034

HDLC掩码寄存器

0x00000000

DMATxPTR

0x8038

DMA Tx缓冲描述符指针寄存器

0xFFFFFFFF

DMARxPTR

0x803C

/

DMA Rx缓冲描述符指针寄存器

0xFFFFFFFF

HMFLR

0x8040

/

最大帧长度寄存器

0xXXXX0000

HRBSR

0x8044

/

DMA 接收缓冲长度寄存器

0xXXXX0000

I/O

IOPMOD

0x5000

/

I/O口模式寄存器

0x00000000

IOPCON

0x5004

/

I/O口控制寄存器

0x00000000

IOPDATA

0x5008

/

I/O口数据寄存器

未定义

中断

控制器

INTMOD

0x4000

/

中断模式寄存器

0x00000000

INTPND

0x4004

/

中断悬挂寄存器

0x00000000

INTMSK

0x4008

/

中断屏蔽寄存器

0x003FFFFF

INTPRI0

0x400C

/

中断优先级寄存器0

0x03020100

INTPRI1

0x4010

/

中断优先级寄存器1

0x07060504

INTPRI2

0x4014

/

中断优先级寄存器2

0x0B0A0908

INTPRI3

0x4018

/

中断优先级寄存器3

0x0F0E0D0C

INTPRI4

0x401C

/

中断优先级寄存器4

0x13121110

INTPRI5

0x4020

/

中断优先级寄存器5

0x00000014

INTOFFSET

0x4024

中断偏移地址寄存器

0x00000054

INTOSET_FIQ

0x4030

FIQ中断偏移量寄存器

0x00000054

INTOSET_IRQ

0x4034

IRQ中断偏移量寄存器

0x00000054

IIC总线

IICCON

0XF000

/

IIC总线控制状态寄存器

0x00000054

IICBUF

0xF004

/

IIC总线移位缓冲寄存器

未定义

IICPS

0xF008

/

IIC总线预分频寄存器

0x00000000

IICCONOUT

0xF00C

IIC总线预分频计数寄存器

0x00000000

GDMA

GDMACON0

0xB000

/

GDMA通道0控制寄存器

0x00000000

GDMACON1

0xC000

/

GDMA通道1控制寄存器

0x00000000

GDMASRC0

0xB004

/

GDMA源地址寄存器0

未定义

GDMADST0

0xB008

/

GDMA目的地址寄存器0

未定义

GDMASRC1

0xC004

/

GDMA源地址寄存器1

未定义

GDMADST1

0xB008

/

GDMA目的地址寄存器1

未定义

GDMACNT0

0xB00C

/

GDMA通道0传输计数寄存器

未定义

GDAMCNT1

0xC00C

/

GDMA通道1传输计数寄存器

未定义

UART

ULCON0

0xD000

/

UART通道0行控制寄存器

0x00

ULCON1

0xE000

/

UART通道1行控制寄存器

0x00

UCON0

0xD004

/

UART通道0控制寄存器

0x00

UCON1

0xE004

/

UART通道1控制寄存器

0x00

USTAT0

0xD008

UART通道0状态寄存器

0xC0

USTAT1

0xE008

UART通道1状态寄存器

0xC0

UTXBUF0

0xD00C

UART通道0发送保持寄存器

未定义

UTXBUF1

0xE00C

UART通道1发送保持寄存器

未定义

URXBUF0

0xD010

UART通道0接收缓冲寄存器

未定义

URXBUF1

0xE010

UART通道1接收缓冲寄存器

未定义

UBRDIV0

0xD014

/

波特率除数因子寄存器0

0x00

UBRDIV1

0xE014

/

波特率除数因子寄存器1

0x00

定时器

TMOD

0x6000

/

定时器模式寄存器

0x00000000

TDATA0

0x6004

/

定时器0数据寄存器

0x00000000

TDATA1

0x6008

/

定时器1数据寄存器

0x00000000

TCNT0

0x600C

/

定时器0计数寄存器

0xFFFFFFFF

TCNT1

0x6010

/

定时器1计数寄存器

0xFFFFFFFF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值