嵌入式系统基础教程第03讲第3章嵌入式处理器典型技术主流嵌入式处理器
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一部分由硬件产生 另一部分由操作系统产生
异常的分类
中断(Interrupt),陷阱(Trap),故障(Fault), 终止(Abort)
2008年6月19日
南京大学计算机系
25
含有异常的处理流程图解
应用程序
发生事件
异常处理
异常返回 (可选)
异常处理
2008年6月19日
南京大学计算机系
26
AT91M55800A处理器 地址重映射前后的地址分配
d31~28 d27~25 d24~21 d20 d19~16 d15~12 d11~7 d6~4 d3-0
执行条件 000 操作码 S
Rn
Rd #shift SH Rm
2008年6月19日
南京大学计算机系
15
例3-2的说明
其中的执行条件字段是该指令执行的条件,共有15种 条件,加上无条件,一共有16种可能,用4位二进制 数表示,可以取其中一种;操作码字段有4位,表示 执行的是哪一种算术逻辑运算,一共有16种运算,可 以取其中任何一种;SH字段表示移位类型,可以有5 种移位指令的编码可供选择,这些指令都用到了桶型 移位器;Rn、Rd、Rm字段是操作数寄存器字段,可 以取16个寄存器R0~R15中的任何一个;#shift是立即 数移位长度值。
Flash ROM的读出速度慢 地址重映射:把SDRAM地址空间迁移到0地址开
始处,把Flash ROM的地址空间迁移到系统存储 器的高端地址。
2008年6月19日
南京大学计算机系
24
术语:异常
异常(Exception)是计算机运行时发生的异常控制流。
它是程序控制流中的突变,用来响应处理器状态中的一 些变化。
Reset Signal Generator
WTCON[15:8]
WTCON[4:3]
WTCON[2]
WTCON[0]
该看门狗是一个16位数的间隔定时器,用来产生中 断服务请求信号。它可在128个存储器时钟周期之内 产生复位信号。
2008年6月19日
南京大学计算机系
20
S3C44BOX的看门狗定时器
2/4/8/16/32MB 2/4/8/16/32MB 32MB
SRAM (nGCS2) SRAM (nGCS1)
SRAM (nGCS0)
32MB 32MB
SFR (4M bytes)
28MB
南京大学计算机系
Bus Width & Wait Status Control Register Memory Bank Control Register Clock Generator & Power Management Special Register
= 0.000128 (second) 注意:Prescaler_value=MCLK/1000000-1 做到在0-255
的范围内
2008年6月19日
南京大学计算机系
22
3.1.7 地址对准和端序
边界地址:
从0号单元开始,按照2字节、4字节或者其他2的整 倍数长度划分内存的读写块,读写块的首地址就是 边界地址。
2008年6月19日
南京大学计算机系
17
双密度指令集举例
ARM微处理器是32位设计,配有定长32位的指令集。但 ARM微处理器也配备16位指令集,称为Thumb指令集。它 允许软件编码为更短的16位机器指令。早期16位Thumb指 令集称为Thumb-1指令集,其指令密度远高于32位指令集。 2003年6月ARM公司推出了Thumb-2核心指令集技术 。这 三种指令集的代码尺寸比较与性能比较请参看下图。
2008年6月19日
南京大学计算机系
10
3.1.3 桶型移位器
通常的移位器都是一个时钟脉冲左移或者 右移1位。
桶型移位器采用了开关矩阵电路,可以做 到用1个时钟脉冲移位任意位。
参看下面的开关矩阵工作示意图。
2008年6月19日
南京大学计算机系
11
不移位操作示意图
输入
3210
1110
In[0] In[1]
System Configuration Register (SYSCFG)
256MB
A[27:0] 可访问区域
5
3.1.2 哈佛结构
哈佛结构是一种计算机体系结构
哈佛结构基本特点:
程序指令存储和数据存储分开的存储器结 构。
可以使指令和数据有不同的数据宽度。
如Microchip公司的PIC16芯片的程序指 令是14位宽度,而数据是8位宽度。
外 13位 部 控制线 接 口
24位 数据线
5位 测试线
2008年6月19日
南京大学计算机系
9
哈佛结构Cache
片内Cache分为两类。 一种是数据和指令都放在同一个Cache中,称
为普林斯顿结构或者统一化结构Cache(统一 型Cache)。 另外一种是数据和指令分别放在两个独立的 Cache中,称为哈佛结构Cache。这后一种 Cache也叫做分离型Cache。
0x10000000 0x0e000000 0x0c000000 0x0a000000 0x06000000 0x04000000 0x02000000
0x01c00000 0x00000000
2008年6月19日
SRAM/DRAM /SDRAM (nGCS7)
SRAM/DRAM /SDRAM (nGCS6) SRAM (nGCS5)
28
S3C44B0X的 UART方框图(含FIFO)
1110
3210
输出
In[2] In[3]
右1
右2
右3
不移位 左3
左2
左1
2008年6月19日
Out[3] Out[2] Out[1] Out[0]
南京大学计算机系
12
循环左移3位操作示意图
输入
3210
1110
In[0] In[1]
左3 左2 左1
不移位 右1
右2
0111
3210
输出
In[2] In[3]
地址重映射前
地址重映射后
片选1 0x00300000
8KB 片内
SRAM
片选1 0x0100000
FLASH
片选0 0x00000000
FLASH
中断向量 异常向量
片选0 0x00000000
8KB 片内 SRAM
中断向量 异常向量
2008年6月19日
南京大学计算机系
27
3.1.9 FIFO缓冲寄存器
2008年6月19日
南京大学计算机系
16
3.1.5 双密度指令集
指令密度:计算机指令集的一个技术指标,与 处理器的体系结构密切相关。它表示该机器指 令程序占用存储器空间的大小。有高密度指令 和低密度指令之分。与低密度指令相比较,高 密度指令执行同样的机器指令序列所需要的指 令存储空间较小。
双密度指令集处理器:指令集包含有指令密度 不相同的两套指令集。
优点:
较高执行效率和数据吞吐率
2008年6月19日
南京大学计算机系
6
哈佛结构示意图
CPU
程序计数器PC
地址总线 指令总线 地址总线
数据总线
指令 存储器
数据 存储器
2008年6月19日
南京大学计算机系
7
冯•诺依曼结构示意图
CPU
程序计数器PC
8年6月19日
南京大学计算机系
以S3C44B0X为例:
时间间隔= 1 / (MCLK / (预分频值 + 1) / (除法系数) MCLK是存储器主频,在option.h中定义为67,500,000 预分频值就是PRESCALER 除法系数就是DIVISION 带入公式计算结果是:
1 / (MCLK / ((MCLK / 1000000 - 1) + 1) / 128)
FIFO(First In First Out)也即先入先出 FIFO寄存器或者FIFO缓冲寄存器
按照FIFO方式进行数据读写的寄存器 FIFO常常用于嵌入式系统
提高数据传输效率 两种使用形态
一种是分立的专用器件 集成在CPU某个控制器的专用寄存器
2008年6月19日
南京大学计算机系
时钟 发生器
预分 频器
看门狗定时器
16位可编程 定时器
使能信号
NMI
2008年6月19日
南京大学计算机系
19
S3C44B0X处理器的看门狗定时器
MCLK
8-bit Prescaler
1/16 1/32 1/64 1/128
MUX
WTDAT
WTCNT (Down Counter)
Interrupt RESET
地址对准访问
从边界地址进行内存访问。
端序,字节序
多字节数据存放时,最高字节存放在最低地址单元 还是最高地址单元。
有大端序和小端序之分
2008年6月19日
南京大学计算机系
23
3.1.8 地址重映射
开始启动时,将存有启动代码的Nor Flash地址空 间映射到0x00000000。
嵌入式系统的中断向量和异常向量表在启动时也 从0号地址存放。
Code Size
100 80 60 40 20 0
2008年6月19日
Performance
100
ARM
80
Thumb-2
60
Thumb
40
20
0
南京大学计算机系
ARM Thumb-2 Thumb
18
3.1.6 看门狗定时器
嵌入式处理器专用的部件。
它能够让嵌入式处理器处理器自动脱离死锁工 作状态。
the same format and all registers and addressing modes can be used interchangeably. The choices of op code, register, and addressing mode are mutually independent.
8
Motorola公司DSP56311型数字信号 处理器的存储系统结构
地址 产生单元
DMA 控制器
Y 数据存储器地址总线 X 数据存储器地址总线 程序地址总线
18位 地址线
处理器核
存 程序 储 RAM 器 Bank
X 数据 RAM Bank
Y 数据 RAM Bank
程序数据总线 X 数据总线 Y 数据总线
嵌入式系统基础教程第03讲第3章嵌入式处理器典型技术主流嵌入式处理器
第3章 嵌入式微处理器技术基础
本章主要介绍以下内容:
嵌入式微处理器典型技术 主流嵌入式微处理器 嵌入式处理器的调试技术 边界扫描测试技术JTAG
2008年6月19日
南京大学计算机系
2
三星公司嵌入式处理器S3C44B0X 存储器地址映射图
In S3C44B0X processor, the prescaler value and the frequency division factor are specified in the watchdog timer control register, WTCON.
The valid prescaler values range from 0 to 28-1. The frequency division factor can be selected as 16, 32, 64, or 128.
Use the following equation to calculate the watchdog timer clock frequency and the duration of each timer clock cycle:
2008年6月19日
南京大学计算机系
21
看门狗定时器的时间间隔计算举例
loosely speaking, the choices are "orthogonal". This contrasts with some early Intel microprocessors where
only certain registers could be used by certain instructions.
Examples include the PDP-11, 680x0, ARM, VAX.
2008年6月19日
南京大学计算机系
14
正交指令集
例3-1:一个正交的两地址指令集中的运算类指令常 采用以下格式:定长操作码 + 寻址方式编码 + 定长格 式的目的寄存器集+ 定长格式的源寄存器集。
例3-2:ARM处理器有16个通用寄存器,分别命名为 R0到R15。ARM处理器的数据处理类指令中的立即数 移位指令格式如下:
在这里循环左移3位 相当于循环右移1位
2008年6月19日
Out[3] Out[2] Out[1] Out[0]
南京大学计算机系
右3
13
3.1.4 正交指令集
正交指令集( orthogonal instruction set ) An instruction set where all (or most) instructions have
异常的分类
中断(Interrupt),陷阱(Trap),故障(Fault), 终止(Abort)
2008年6月19日
南京大学计算机系
25
含有异常的处理流程图解
应用程序
发生事件
异常处理
异常返回 (可选)
异常处理
2008年6月19日
南京大学计算机系
26
AT91M55800A处理器 地址重映射前后的地址分配
d31~28 d27~25 d24~21 d20 d19~16 d15~12 d11~7 d6~4 d3-0
执行条件 000 操作码 S
Rn
Rd #shift SH Rm
2008年6月19日
南京大学计算机系
15
例3-2的说明
其中的执行条件字段是该指令执行的条件,共有15种 条件,加上无条件,一共有16种可能,用4位二进制 数表示,可以取其中一种;操作码字段有4位,表示 执行的是哪一种算术逻辑运算,一共有16种运算,可 以取其中任何一种;SH字段表示移位类型,可以有5 种移位指令的编码可供选择,这些指令都用到了桶型 移位器;Rn、Rd、Rm字段是操作数寄存器字段,可 以取16个寄存器R0~R15中的任何一个;#shift是立即 数移位长度值。
Flash ROM的读出速度慢 地址重映射:把SDRAM地址空间迁移到0地址开
始处,把Flash ROM的地址空间迁移到系统存储 器的高端地址。
2008年6月19日
南京大学计算机系
24
术语:异常
异常(Exception)是计算机运行时发生的异常控制流。
它是程序控制流中的突变,用来响应处理器状态中的一 些变化。
Reset Signal Generator
WTCON[15:8]
WTCON[4:3]
WTCON[2]
WTCON[0]
该看门狗是一个16位数的间隔定时器,用来产生中 断服务请求信号。它可在128个存储器时钟周期之内 产生复位信号。
2008年6月19日
南京大学计算机系
20
S3C44BOX的看门狗定时器
2/4/8/16/32MB 2/4/8/16/32MB 32MB
SRAM (nGCS2) SRAM (nGCS1)
SRAM (nGCS0)
32MB 32MB
SFR (4M bytes)
28MB
南京大学计算机系
Bus Width & Wait Status Control Register Memory Bank Control Register Clock Generator & Power Management Special Register
= 0.000128 (second) 注意:Prescaler_value=MCLK/1000000-1 做到在0-255
的范围内
2008年6月19日
南京大学计算机系
22
3.1.7 地址对准和端序
边界地址:
从0号单元开始,按照2字节、4字节或者其他2的整 倍数长度划分内存的读写块,读写块的首地址就是 边界地址。
2008年6月19日
南京大学计算机系
17
双密度指令集举例
ARM微处理器是32位设计,配有定长32位的指令集。但 ARM微处理器也配备16位指令集,称为Thumb指令集。它 允许软件编码为更短的16位机器指令。早期16位Thumb指 令集称为Thumb-1指令集,其指令密度远高于32位指令集。 2003年6月ARM公司推出了Thumb-2核心指令集技术 。这 三种指令集的代码尺寸比较与性能比较请参看下图。
2008年6月19日
南京大学计算机系
10
3.1.3 桶型移位器
通常的移位器都是一个时钟脉冲左移或者 右移1位。
桶型移位器采用了开关矩阵电路,可以做 到用1个时钟脉冲移位任意位。
参看下面的开关矩阵工作示意图。
2008年6月19日
南京大学计算机系
11
不移位操作示意图
输入
3210
1110
In[0] In[1]
System Configuration Register (SYSCFG)
256MB
A[27:0] 可访问区域
5
3.1.2 哈佛结构
哈佛结构是一种计算机体系结构
哈佛结构基本特点:
程序指令存储和数据存储分开的存储器结 构。
可以使指令和数据有不同的数据宽度。
如Microchip公司的PIC16芯片的程序指 令是14位宽度,而数据是8位宽度。
外 13位 部 控制线 接 口
24位 数据线
5位 测试线
2008年6月19日
南京大学计算机系
9
哈佛结构Cache
片内Cache分为两类。 一种是数据和指令都放在同一个Cache中,称
为普林斯顿结构或者统一化结构Cache(统一 型Cache)。 另外一种是数据和指令分别放在两个独立的 Cache中,称为哈佛结构Cache。这后一种 Cache也叫做分离型Cache。
0x10000000 0x0e000000 0x0c000000 0x0a000000 0x06000000 0x04000000 0x02000000
0x01c00000 0x00000000
2008年6月19日
SRAM/DRAM /SDRAM (nGCS7)
SRAM/DRAM /SDRAM (nGCS6) SRAM (nGCS5)
28
S3C44B0X的 UART方框图(含FIFO)
1110
3210
输出
In[2] In[3]
右1
右2
右3
不移位 左3
左2
左1
2008年6月19日
Out[3] Out[2] Out[1] Out[0]
南京大学计算机系
12
循环左移3位操作示意图
输入
3210
1110
In[0] In[1]
左3 左2 左1
不移位 右1
右2
0111
3210
输出
In[2] In[3]
地址重映射前
地址重映射后
片选1 0x00300000
8KB 片内
SRAM
片选1 0x0100000
FLASH
片选0 0x00000000
FLASH
中断向量 异常向量
片选0 0x00000000
8KB 片内 SRAM
中断向量 异常向量
2008年6月19日
南京大学计算机系
27
3.1.9 FIFO缓冲寄存器
2008年6月19日
南京大学计算机系
16
3.1.5 双密度指令集
指令密度:计算机指令集的一个技术指标,与 处理器的体系结构密切相关。它表示该机器指 令程序占用存储器空间的大小。有高密度指令 和低密度指令之分。与低密度指令相比较,高 密度指令执行同样的机器指令序列所需要的指 令存储空间较小。
双密度指令集处理器:指令集包含有指令密度 不相同的两套指令集。
优点:
较高执行效率和数据吞吐率
2008年6月19日
南京大学计算机系
6
哈佛结构示意图
CPU
程序计数器PC
地址总线 指令总线 地址总线
数据总线
指令 存储器
数据 存储器
2008年6月19日
南京大学计算机系
7
冯•诺依曼结构示意图
CPU
程序计数器PC
8年6月19日
南京大学计算机系
以S3C44B0X为例:
时间间隔= 1 / (MCLK / (预分频值 + 1) / (除法系数) MCLK是存储器主频,在option.h中定义为67,500,000 预分频值就是PRESCALER 除法系数就是DIVISION 带入公式计算结果是:
1 / (MCLK / ((MCLK / 1000000 - 1) + 1) / 128)
FIFO(First In First Out)也即先入先出 FIFO寄存器或者FIFO缓冲寄存器
按照FIFO方式进行数据读写的寄存器 FIFO常常用于嵌入式系统
提高数据传输效率 两种使用形态
一种是分立的专用器件 集成在CPU某个控制器的专用寄存器
2008年6月19日
南京大学计算机系
时钟 发生器
预分 频器
看门狗定时器
16位可编程 定时器
使能信号
NMI
2008年6月19日
南京大学计算机系
19
S3C44B0X处理器的看门狗定时器
MCLK
8-bit Prescaler
1/16 1/32 1/64 1/128
MUX
WTDAT
WTCNT (Down Counter)
Interrupt RESET
地址对准访问
从边界地址进行内存访问。
端序,字节序
多字节数据存放时,最高字节存放在最低地址单元 还是最高地址单元。
有大端序和小端序之分
2008年6月19日
南京大学计算机系
23
3.1.8 地址重映射
开始启动时,将存有启动代码的Nor Flash地址空 间映射到0x00000000。
嵌入式系统的中断向量和异常向量表在启动时也 从0号地址存放。
Code Size
100 80 60 40 20 0
2008年6月19日
Performance
100
ARM
80
Thumb-2
60
Thumb
40
20
0
南京大学计算机系
ARM Thumb-2 Thumb
18
3.1.6 看门狗定时器
嵌入式处理器专用的部件。
它能够让嵌入式处理器处理器自动脱离死锁工 作状态。
the same format and all registers and addressing modes can be used interchangeably. The choices of op code, register, and addressing mode are mutually independent.
8
Motorola公司DSP56311型数字信号 处理器的存储系统结构
地址 产生单元
DMA 控制器
Y 数据存储器地址总线 X 数据存储器地址总线 程序地址总线
18位 地址线
处理器核
存 程序 储 RAM 器 Bank
X 数据 RAM Bank
Y 数据 RAM Bank
程序数据总线 X 数据总线 Y 数据总线
嵌入式系统基础教程第03讲第3章嵌入式处理器典型技术主流嵌入式处理器
第3章 嵌入式微处理器技术基础
本章主要介绍以下内容:
嵌入式微处理器典型技术 主流嵌入式微处理器 嵌入式处理器的调试技术 边界扫描测试技术JTAG
2008年6月19日
南京大学计算机系
2
三星公司嵌入式处理器S3C44B0X 存储器地址映射图
In S3C44B0X processor, the prescaler value and the frequency division factor are specified in the watchdog timer control register, WTCON.
The valid prescaler values range from 0 to 28-1. The frequency division factor can be selected as 16, 32, 64, or 128.
Use the following equation to calculate the watchdog timer clock frequency and the duration of each timer clock cycle:
2008年6月19日
南京大学计算机系
21
看门狗定时器的时间间隔计算举例
loosely speaking, the choices are "orthogonal". This contrasts with some early Intel microprocessors where
only certain registers could be used by certain instructions.
Examples include the PDP-11, 680x0, ARM, VAX.
2008年6月19日
南京大学计算机系
14
正交指令集
例3-1:一个正交的两地址指令集中的运算类指令常 采用以下格式:定长操作码 + 寻址方式编码 + 定长格 式的目的寄存器集+ 定长格式的源寄存器集。
例3-2:ARM处理器有16个通用寄存器,分别命名为 R0到R15。ARM处理器的数据处理类指令中的立即数 移位指令格式如下:
在这里循环左移3位 相当于循环右移1位
2008年6月19日
Out[3] Out[2] Out[1] Out[0]
南京大学计算机系
右3
13
3.1.4 正交指令集
正交指令集( orthogonal instruction set ) An instruction set where all (or most) instructions have