S3C44B0X 中断控制器功能及应用
合集下载
嵌入式讲座5-44B0X芯片中断介绍
44B0X芯片介绍
中断控制器
概述
S3C44B0X的中断控制器可以接收来自30个中断源的 请求。中断控制器的角色,就是提供给FIQ或IRQ的 中断申请,并请求内核对中断进行处理。 当有多个中断同时发生的时候,中断控制器要决定首 先处理哪一个中断。 ARM7TDMI 有2种类型的中断模式,FIQ(快速中断 请求)或IRQ(普通中断请求),所有中断源都可以 决定在中断请求时采用哪种模式。它们的区别是:对 于FIQ必须尽快处理事情并离开这个模式,IRQ可以 被FIQ中断,而IRQ不能中断FIQ。常见的例子是各种 中断使用IRQ模式,把FIQ模式保留备用。
中 断 源 矢 量 地 址 表
44B0中断系统中有两张中断转移表,经过二 重转移才跳到中断处理程序。第一张中断向量 表由硬件决定,所在区域为ROM(flash), 地址空间从 0X00开始,其中0X00-0X01C为 异常向量入口地址,0X020-0X0C0为中断向 量入口地址。另一张中断向量表在RAM中, 可以随便改,其位置在程 序连接后才定。 通过ldr PC,=Handlerxxxx之类的语句连接两张 中断向量表。
以EINT2中断为例:
分支指令使跳转
EINT2中断信号 0X18 0X28
执行 ldr pc,=handlerEINT2
到 handlerEINT2 handler handleEINT2 处执行。 此为宏指令,包括 保存工作状态,运行handleEINT2,恢复工作状态
handleEINT2就是相应中断处理函数的地址
小结
ARM7TDMI处理器的程序状态寄存器CPSR的F位被设 置为1,处理器将不接受来自中断控制器的FIQ。如果 CPSR的I 位被设置为1,处理器将不接受来自中断控 制器的IRQ。因此,为了使能中断相应机制,CPSR 的F位或I 位必须被清0,同时INTMASK的相应位必须 被清0。 中断挂起寄存器表明是否有中断请求,当某挂起位被 置1时,如果中断使能则启动中断服务程序。该寄存器 是只读的。 如果将所有的中断源定义为IRQ 中断(通过设置“中 断模式”),这时如果在同一时刻发生了10 个中断请 求,你可以通过读取中断挂起寄存器来了解哪些中断 发生了,并对产生的中断依次进行处理,这也就是通 过软件的方式决定了中断服务的优先级。
中断控制器
概述
S3C44B0X的中断控制器可以接收来自30个中断源的 请求。中断控制器的角色,就是提供给FIQ或IRQ的 中断申请,并请求内核对中断进行处理。 当有多个中断同时发生的时候,中断控制器要决定首 先处理哪一个中断。 ARM7TDMI 有2种类型的中断模式,FIQ(快速中断 请求)或IRQ(普通中断请求),所有中断源都可以 决定在中断请求时采用哪种模式。它们的区别是:对 于FIQ必须尽快处理事情并离开这个模式,IRQ可以 被FIQ中断,而IRQ不能中断FIQ。常见的例子是各种 中断使用IRQ模式,把FIQ模式保留备用。
中 断 源 矢 量 地 址 表
44B0中断系统中有两张中断转移表,经过二 重转移才跳到中断处理程序。第一张中断向量 表由硬件决定,所在区域为ROM(flash), 地址空间从 0X00开始,其中0X00-0X01C为 异常向量入口地址,0X020-0X0C0为中断向 量入口地址。另一张中断向量表在RAM中, 可以随便改,其位置在程 序连接后才定。 通过ldr PC,=Handlerxxxx之类的语句连接两张 中断向量表。
以EINT2中断为例:
分支指令使跳转
EINT2中断信号 0X18 0X28
执行 ldr pc,=handlerEINT2
到 handlerEINT2 handler handleEINT2 处执行。 此为宏指令,包括 保存工作状态,运行handleEINT2,恢复工作状态
handleEINT2就是相应中断处理函数的地址
小结
ARM7TDMI处理器的程序状态寄存器CPSR的F位被设 置为1,处理器将不接受来自中断控制器的FIQ。如果 CPSR的I 位被设置为1,处理器将不接受来自中断控 制器的IRQ。因此,为了使能中断相应机制,CPSR 的F位或I 位必须被清0,同时INTMASK的相应位必须 被清0。 中断挂起寄存器表明是否有中断请求,当某挂起位被 置1时,如果中断使能则启动中断服务程序。该寄存器 是只读的。 如果将所有的中断源定义为IRQ 中断(通过设置“中 断模式”),这时如果在同一时刻发生了10 个中断请 求,你可以通过读取中断挂起寄存器来了解哪些中断 发生了,并对产生的中断依次进行处理,这也就是通 过软件的方式决定了中断服务的优先级。
S3C44B0X存储控制器功能及应用开发
1)大/小ENDIAN模式选择 处理器复位时(nRESET为低),通过ENDIAN 引脚选择所使用的ENDIAN模式。 ENDIAN引脚通过下拉电阻与 Vss连接,定义为 Little endian 模式; ENDIAN 引脚通过上拉电 阻和 Vdd 连接,则定义为 Big endian 模式。如 表4-2所示。
表4-2大/小endian模式
2)BANK0总线宽度 BANK0(nGCS0)的数据总线宽度可以配置为8 位、16位或32位。因为BANK0为启动ROM(映 射地址为0X00000000)所在的空间,所以必须 在第一次访问 ROM 前设置 BANK0 数据宽度,该 数据宽度是由复位后OM[1:0]的逻辑电平决定的, 表4-3所示。
表4-3数据宽度选择
3)存储器地址线连接
存储器地址线 S3c44b0x地址 S3c44b0x地址 S3c44b0x地址 连接 @8位数据总 @16位数据总 @32位数据总 线 线 线 A0 A0 A1 A2 A1 A2 A3 … A1 A2 A3 … A2 A3 A4 … A3 A4 A5 …
2、 S3C44B0X存储控制器功能及 应用开发
[ENDIAN]:只读,指示系统选定的大 /小 端模式, 0表示小端模式, 1表示大端模式。 [DWi]: i=0 ~7,其中 DW0为只读,因 为 bank0 数据总线宽度在复位后已经由 OM[1 :0]的电平决定。 DW1~ DW7可 写,用于配置 bank1 ~ bank7的数据总线宽 度, 00表示 8位数据总线宽度, 01表示 16位 数据总线宽度, 10表示 32位数据总线宽度。
从图中可以看出: 特 殊 功 能 寄 存 器 位 于 0X01C00000 到 0X02000000的4M空间内; Bank0-Bank5的起始地址和空间大小都是固定的; Bank6 的 起始地 址是固 定的 , 但是空 间大小和 Bank7 一 样 是 可 变 的 , 可 以 配 置 为 2/4/8/16/32M。 Bank6和 Bank7的详细的地址和空间大小的关系 可以参考右表
S3C44B0X 中断控制器功能及应用
中断控制寄存器INTCON
地址:0x01E00000, 初值:0x7 选择中断的模式,IRQ及FIQ的使能设置
中断控制寄存器INTPND
地址:0x01E00004
某个中断发生时,INTPND中的相硬位置1; 清除INTPND的方式是向I_ISPC/F_ISPC的相 应位置1;
INTPND中的
中断源详细列表
中断源列表说明
EINT4、EINT5、EINT6、EINT7共用一个 中断请求源; 中断程序通过读寄存器EXTINTPND[3:0], 来区别4个中断源; 在中断处理程序结束时,EXTINTPND[3: 0]必须清除。
中断源矢量地址
30个中断源,26个中断矢量; EINT4/5/6/7 共用一个中断矢量地址; INT_UERR0/1共用一个中断矢量地址。 详细见下表。
地址:0x01E00024/0x01E0003C 主要作用:在某个中断结束时,通过
向I_ISPC/F_ISPC相应位写1来清除中 断挂起寄存器INTPND中的中断挂起位。
I_ISPC/F_ISPC的位定义
S3C44B0X 中断控制器应用
使用按钮SB2触发 EINT6,LED1亮, 同时8段数码管由0到 F显示1次,8段数码 管显示完后,LED1 熄灭。 使用按钮SB3触发 EINT7,LED2亮, 同时8段数码管由F到 0显示1次,8段数码 管显示完后,LED2 熄灭。
处理器不接收来自FRQ的中断
为了使能中断机制,PSR的I或F位必需清 零,同时中断屏蔽寄存器(INTMSK)的相 应位也必须清零。
中断源
有26个中断源提供给中断控制器。 4个外部中断(EINT4/5/6/7)相或送中 断控制器。 2个UART错误中断(UERRO/1)相或送中 断控制器。 中断源的详细信息见下表。
S3C44B0XIO端口功能及应用开发.ppt
✓ CPU:
状态寄存器CPSR(P67页) I(IRQ)标志、F(FIQ)标志 (0:允许、1:禁止)
✓ 中断管理器: 中断控制寄存器INTCON──4位(P342页) 保留位、V(向量)、I、F
(0:允许、1:禁止)
6.6 S3C44B0X的中断应用(3)
✓ 端口管理
☆ 中断模式寄存器INTMOD(P343页)
• 中断控制器的任务是在片内外围和外部中断源组成的多重中断发生 时,经过优先级判断选择其中一个中断通过FIQ或IRQ向ARM7TDMI 内核发出FIQ或IRQ中断请求。
• 实际上最初ARM7TDMI内核只有FIQ(快速中断请求)和IRQ(通用 中断请求)两种中断,其它中断都是各个芯片厂家在设计芯片时定 义的,这些中断根据中断的优先级高低来进行处理。例如,如果你 定义所有的中断源为IRQ中断(通过中断模式设置),当同时有10 个中断发出请求时,可以通过读中断优先级寄存器来确定哪一个中 断将被优先执行。一般的中断模式在进入所需的服务程序前需要很 长的中断反应时间,为了解决这个问题,S3C44B0X提供了一种新 的中断模式叫做矢量中断模式,它具有CISC结构微控制器的特征, 能够减少中断反应时间。换句话说S3C44B0X的中断控制器硬件本 身直接提供了对矢量中断服务的支持。
☆ 中断挂起清零寄存器I_ISPC(P347页)程控!!
26位:清除对应中断挂起位 0—不变,1—清除(含未响应))
6.6 S3C44B0X的中断应用(5)
✓ 端口管理 ☆ 外部中断控制寄存器EXTINT(P315页)
32位:XXXX格式(4位对应一个端口)
触发方式:低(高)电平、上升(下降)沿 ☆ 外部中断挂起寄存器EXTINTPND (P315页)
• 6.4.1 S3C444B0X DMA概述 • 6.4.2 S3C444B0X ZDMA/BDMA操作
状态寄存器CPSR(P67页) I(IRQ)标志、F(FIQ)标志 (0:允许、1:禁止)
✓ 中断管理器: 中断控制寄存器INTCON──4位(P342页) 保留位、V(向量)、I、F
(0:允许、1:禁止)
6.6 S3C44B0X的中断应用(3)
✓ 端口管理
☆ 中断模式寄存器INTMOD(P343页)
• 中断控制器的任务是在片内外围和外部中断源组成的多重中断发生 时,经过优先级判断选择其中一个中断通过FIQ或IRQ向ARM7TDMI 内核发出FIQ或IRQ中断请求。
• 实际上最初ARM7TDMI内核只有FIQ(快速中断请求)和IRQ(通用 中断请求)两种中断,其它中断都是各个芯片厂家在设计芯片时定 义的,这些中断根据中断的优先级高低来进行处理。例如,如果你 定义所有的中断源为IRQ中断(通过中断模式设置),当同时有10 个中断发出请求时,可以通过读中断优先级寄存器来确定哪一个中 断将被优先执行。一般的中断模式在进入所需的服务程序前需要很 长的中断反应时间,为了解决这个问题,S3C44B0X提供了一种新 的中断模式叫做矢量中断模式,它具有CISC结构微控制器的特征, 能够减少中断反应时间。换句话说S3C44B0X的中断控制器硬件本 身直接提供了对矢量中断服务的支持。
☆ 中断挂起清零寄存器I_ISPC(P347页)程控!!
26位:清除对应中断挂起位 0—不变,1—清除(含未响应))
6.6 S3C44B0X的中断应用(5)
✓ 端口管理 ☆ 外部中断控制寄存器EXTINT(P315页)
32位:XXXX格式(4位对应一个端口)
触发方式:低(高)电平、上升(下降)沿 ☆ 外部中断挂起寄存器EXTINTPND (P315页)
• 6.4.1 S3C444B0X DMA概述 • 6.4.2 S3C444B0X ZDMA/BDMA操作
S3C44B0X存储控制器功能及应用概要
大/小端模式
Endian@输入
端模式
0 1
小端 大端
S3C44B0X存储控制器功能描述(续)
2 Bank0 总线宽度
(1) 总线宽度配置:8/16/32bit (2) 配置时间:因为bank0为启动rom所在的空 间,所以要在第一次访问rom前设置banko的数据宽 度. (3) 由复位后OM[1:0]的逻辑电平决定(如下图) (4)其他存储体的总线宽度只能在系统复位后由 程序进行设定,由地址为0x01c8000的特殊寄存器 BWSCON的相应位决定。
S3C44B0X存储控制器功能描述(续)
Bank0数据宽度选择
OM0(操作方式1) OM1(操作方式0)
ROM数据宽度
8位 16位
0 0
0 1
1
1
0
1
32位
测试模式
S3C44B0X存储控制器功能描述(续)
3.存储器(SROM/DRAM/SDRAM)地址线连接
数据宽度不同,连接方式也不同 Nhomakorabea(1)只要将CPU上的相应Bank连线接到外设芯片的片选引脚上,便可以根据相应的地址进 行存储器或外设操作了。 (2)使用Bank0上的两片512KB×2存储器来放置系统BIOS,系统上电以后,PC指针自动 指向Bank0的第一个单元,开始进行系统自举。
(一 ) S3C44B0X存储控制器概述
OVERVIEW The S3C44B0X memory controller provides the necessary memory control signals for external memory access. S3C44B0X has the following features; — Little/Big endian(selectable by an external pin) — Address space: 32Mbytes per each bank (total 256MB:8 banks) — Programmable access size(8/16/32-bit) for all banks — Total 8 memory banks 6 memory banks for ROM, SRAM etc. 2 memory banks for ROM, SRAM, FP/EDO/SDRAM etc . — 7 fixed memory bank start address and programmble bank size — 1 flexible memory bank start address and programmable bank size — Programmable access cycles for all memory banks — External wait to extend the bus cycles — Supports self-refresh mode in DRAM/SDRAM for power-down — Supports asymmetrically or symmetrically addressable DRAM
S3C44B0X硬件结构及功能
fly模式有不可分割的读
I/O装置到存储器之间传输数据。 写周期,在这点上
ZDMA与普通的DMA不
IIS和SBIODM)A与控存制储器器只之能间在传连输到数SP据B。上的同 部 的I/, 存 外O从 储 设外而器之设可和间(以外DM如减部A少可U操A在寻作R外址的T,
周期数。
❖ 概述
4.5 DMA控制器
STE
QDS
CMD
位
[7:6]
[5:4]
[3:2]
[1:0]
软件命令
注意00::没如有果命以令C。M在D写=0011,1启0,动11Z后D,MCAM操D位作被,自则动D清M除A,请 求/应n01X答:D由R协SE议Q/允应W许启为动连D接M模A式操。作,S/W启动功能能用在连
续模式下 10:停止DMA操作,但nXDREQ仍允许 11:取消DMA操作
❖ DMA寄存器 -----------ZDMA控制寄存器
ZDCONn INT
STE
QDS
CMD
位
[7:6]
[5:4]
[3:2]
[1:0]
忽略/允许外部DMA 请求(nXDREQ) 00: 允许 01: 禁止
4.5 DMA控制器
❖ DMA寄存器 -----------ZDMA控制寄存器
ZDCONn INT
器ZDISRCn/ ZDCSRCn
ZDISRCn 位
DST [31:30]
DAL [29:28]
ISADDR/CSADD R
[:270]
传输的数据类型 00:字节 01:半字 10:字 11:保留 在块传输模式,DST必须是10
4.5 DMA控制器
❖ DMA寄存器 -----------ZDMA初始/当前源地址寄存
I/O装置到存储器之间传输数据。 写周期,在这点上
ZDMA与普通的DMA不
IIS和SBIODM)A与控存制储器器只之能间在传连输到数SP据B。上的同 部 的I/, 存 外O从 储 设外而器之设可和间(以外DM如减部A少可U操A在寻作R外址的T,
周期数。
❖ 概述
4.5 DMA控制器
STE
QDS
CMD
位
[7:6]
[5:4]
[3:2]
[1:0]
软件命令
注意00::没如有果命以令C。M在D写=0011,1启0,动11Z后D,MCAM操D位作被,自则动D清M除A,请 求/应n01X答:D由R协SE议Q/允应W许启为动连D接M模A式操。作,S/W启动功能能用在连
续模式下 10:停止DMA操作,但nXDREQ仍允许 11:取消DMA操作
❖ DMA寄存器 -----------ZDMA控制寄存器
ZDCONn INT
STE
QDS
CMD
位
[7:6]
[5:4]
[3:2]
[1:0]
忽略/允许外部DMA 请求(nXDREQ) 00: 允许 01: 禁止
4.5 DMA控制器
❖ DMA寄存器 -----------ZDMA控制寄存器
ZDCONn INT
器ZDISRCn/ ZDCSRCn
ZDISRCn 位
DST [31:30]
DAL [29:28]
ISADDR/CSADD R
[:270]
传输的数据类型 00:字节 01:半字 10:字 11:保留 在块传输模式,DST必须是10
4.5 DMA控制器
❖ DMA寄存器 -----------ZDMA初始/当前源地址寄存
第四章基于S3C44B0X嵌入式系统应用开发
堆栈指针
程序状态寄存器
程序链接寄存器
第4章基于S3C44B0X嵌入式系统应用开发
CPSR
第4章基于S3C44B0X嵌入式系统应用开发
Thumb状态下寄存器组织
第4章基于S3C44B0X嵌入式系统应用开发
4.3.2 S3C44B0X存储器空间划分简述
第4章基于S3C44B0X嵌入式系统应用开发
第4章基于S3C44B0X嵌入式系统应用开发
读: ①#define addr1 *((volatile unsigned short*)0x00) i=addr1; ②i=*((volatile unsigned short*)0x00);
写: *((volatile unsigned short*)0x00) = (unsigned short)i ;
第4章基于S3C44B0X嵌入式系统应用开发
特殊功能寄存器配置示例
LDR R0, =SMRDATA LDMIA R0,{R1—R13} LDR R0, =0x01C80000 ;BWSCON Address STMIA R0, {Rl—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=l,CAN=10 bits) .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)
S3C44B0X硬件结构及功能
存储地址引脚
A0 A1 A2 A3 ┇
8位数据总线下的 S3C44B0X地址
A0 A1 A2 A3 ┇
16位数据总线下的 32位数据总线下的 S3C44B0X地址 S3C44B0X地址
A1
A2
A2
A3
A3
A4
A4
A5
┇
┇
3、典型系统中存储器的分配情况
典型系统中存储器分配情况如表4—5所示。 只要将CPU上的相应Bank连线接到外设芯片的片选 引脚上,便可以根据相应的地址进行存储器或外设操作了。
⑤ 采用触发式的传输模式以提高FPDAM, EDODRAM和SDRAM的数据传输速率。
⑥ 支持在外部设备到存储器和存储器到外部设备之间 采用fly-by模式。
(11)A/D转换器。 S3C44BOX的A/D转换器特性如下: ① 8通道的ADC; ② 最大100KSPS/10位。 (12)LCD控制器。 S3C44BOX的LCD控制器特性如下: ① 支持彩色/黑白/灰度LCD屏; ② 支持单路扫描和双路扫描; ③ 支持虚拟显示屏功能; ④ 系统存储器用来作为显示存储器; ⑤ 用专门的DMA从系统存储器中获得图像数据; ⑥ 可编程的屏幕大小; ⑦ 灰度等级:16级灰度; ⑧ 256种颜色。
S3C44BOX通过提供全面的、通用的焉上外设, 大大减少了系统中除处理器以外的元器件配置,从而使 系统的成本大为降低。
S3C44BOX集成的各种片上功能如下: ➢ (1)2.5V ARM7TDMI内核,带有8KB Cache; ➢ (2)可选的内部SRAM; ➢ (3)LCD控制器(最大支持256色DSTN,LCD具 有专用DMA); ➢ (4)2通道UART带有握手协议(支持IrDA1.0, 具有16-byte FIFO); ➢ (5)1通道SIO; ➢ (6)2个通用DMA; ➢ (7)2个外设用DMA,具有外部请求引脚;
第4章 第5节 基于S3C44B0X功能模块及应用开发介绍
4.5.1 S3C44B0X时钟电源管理的功能 及应用开发
在ARM处理器里,锁相器参考接收到的脉冲信号的频率 和相位,输出一个同步时钟信号,即主频信号。 由于锁相器的内部是一个反馈电路,所以常常称为锁相环。 参看下面的结构图。
输入 脉冲 鉴相器 输出 时钟
环路 滤波器
受控时钟 发生器
4.5.1 S3C44B0X时钟电源管理的功能 及应用开发
表4-2大/小endian模式
2)BANK0总线宽度 BANK0(nGCS0)的数据总线宽度可以配置 为8位、 16位或 32位。因 为BANK0为启动 ROM (映射地址为0X00000000)所在的空间,所以必 须在第一次访问ROM前设置BANK0数据宽度,该 数据宽度是由复位后OM[1:0]的逻辑电平决定的, 表4-3所示。
嵌入式系统原理
柏桂枝
1
4.5 基于S3C44B0X应用开发介绍
4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 S3C44B0X时钟电源管理的功能及应用开发 S3C44B0X存储控制器功能及应用开发 S3C44B0X I/O端口功能及应用开发 S3C44B0X中断控制器功能及应用开发 S3C44B0X UART接口功能及应用开发
表4-3数据宽度选择
3)存储器地址线连接
存储器地址 线连接 S3c44b0x地 址 @8位数据总 线 A0 A1 A2 A3 S3c44b0x地 S3c44b0x地 址 址 @16位数据总 @32位数据总 线 线 A1 A2 A2 A3 A4 A3 A4 A5
A0
A1 A2 A3
…
…
…
…
4、存储控制器的特殊功能寄存器
ARM硬件结构设计
rPCON G ==0XffffH 如果希望采用内部上拉电阻,则语句为 rPUP G = 0X00;
16
外部中断触发模式设置 利用外部中断控制寄存器EXTINT来设置外部
中断的触发模式,采用电平触发容易引起重复 触发,所以建议采用下降沿或上升沿触发. 采用下降沿触发: rEXTINT = 0X22222222; 采用上升沿触发 rEXTINT = 0X44444444;
4×4键盘接口电路
J7
1 2 3 4 5 6 7 8
KE YBOARD
21
步骤:
(1). 设置PCON F : 地址 0X01D20034
rPCON F=000 000 000 000 00 01 01 01 01B=0X55
PF8 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0
(2).设置PDAT F: 地址 0X01D20038 PF0-3 作为输出 PDAT F=0XF0; // PF0-3全写0 PF4-7 作为输入口,该位的值是对应的引脚的状态.
10
如中断源由中断屏蔽寄存器屏蔽,当一个中断请求 产生,对应INTPND位仍被置1,但该中断请求不能 得到CPU的服务。 中断登记寄存器是只读寄存器,所以服务例程必须清 除登记位,方法是通过写1到中断登记寄存器I _ ISPC 或 F_ISPC 的对应位。
11
.3 S3C444B0X 中断源
在30个中断源中,对于中断控制器 来说有26个中断源是单独的,4个外部 中断(EINT4/5/6/7)是逻辑或的关系 ,它们共用同一个中断源,另外两个 UART错误中断(UERROR0/1)也是 共用同一个中断控制器。
25
(1) S3C44B0X LCD控制器概述
16
外部中断触发模式设置 利用外部中断控制寄存器EXTINT来设置外部
中断的触发模式,采用电平触发容易引起重复 触发,所以建议采用下降沿或上升沿触发. 采用下降沿触发: rEXTINT = 0X22222222; 采用上升沿触发 rEXTINT = 0X44444444;
4×4键盘接口电路
J7
1 2 3 4 5 6 7 8
KE YBOARD
21
步骤:
(1). 设置PCON F : 地址 0X01D20034
rPCON F=000 000 000 000 00 01 01 01 01B=0X55
PF8 PF7 PF6 PF5 PF4 PF3 PF2 PF1 PF0
(2).设置PDAT F: 地址 0X01D20038 PF0-3 作为输出 PDAT F=0XF0; // PF0-3全写0 PF4-7 作为输入口,该位的值是对应的引脚的状态.
10
如中断源由中断屏蔽寄存器屏蔽,当一个中断请求 产生,对应INTPND位仍被置1,但该中断请求不能 得到CPU的服务。 中断登记寄存器是只读寄存器,所以服务例程必须清 除登记位,方法是通过写1到中断登记寄存器I _ ISPC 或 F_ISPC 的对应位。
11
.3 S3C444B0X 中断源
在30个中断源中,对于中断控制器 来说有26个中断源是单独的,4个外部 中断(EINT4/5/6/7)是逻辑或的关系 ,它们共用同一个中断源,另外两个 UART错误中断(UERROR0/1)也是 共用同一个中断控制器。
25
(1) S3C44B0X LCD控制器概述
第4章 S3C44B0X介绍
见P.232 表4-42
4.3 S3C44B0X I/O端口功能及应用开发
4.3.1 S3C444B0X I/O功能概述 4.3.2 S3C444B0X 端口功能配置 4.3.3 S3C444B0X I/O端口特殊功能控制描述 4.3.5 S3C444B0X I/O端口应用编程
4.3.1 S3C44B0X I/O端口功能概述
总线宽度/等待控制寄存器(BWSCON)(1个) 用来决定存储器总线宽度、等待允许、高 低字节使能。见P.229
S3C44B0X存储控制器的特殊功能寄存器
Bank控制寄存器 ( BANKCONn )(8个) 用来确定存储器读写时序。 P.229 ⑴ (BANKCONn: nGCS0-nGCS5)
所有存储器空间的访问周期都可以通过编
程配置; 提供外部扩展总线的等待周期; 在低功耗的情况下支持DRAM/SDARM自 动刷新; 支持地址对称或非地址对称的DRAM。
三、Cache和片内SRAM
4路组相联统一的8KB指令/数据Cache; 未作为Cache使用的4/8 Kbytes Cache存
S3C44B0X存储控制器的特殊功能寄存器
Bank大小寄存器(BANKSIZE)(1个) 用来设置Bank6/Bank7的存储区大小。见P.231 表4-41
S3C44B0X存储控制器的特殊功能寄存器
Bank6—Bank7模式设置寄存器(MRSR) (2个) 用来决定Bank6、Bank7的存储模式。
二、系统(存储)管理
支持大、小端模式(通过外部引脚来选择); 地址空间:包含8个存储体,每个存储体的大小
为32M字节,总共有256M字节的地址空间; 对所有存储体的访问大小均可进行改变(8位/16 位/32位); 8个存储体中,Bank0~Bank5可以用于ROM、 SRAM等存储器,Bank6、Bank7可用于ROM、 SRAM、FP/EDO(Extended Data Out DRAM) /SDRAM等存储器; 7个存储体起始地址固定,1个存储体的起始地址 可变。
4.3 S3C44B0X I/O端口功能及应用开发
4.3.1 S3C444B0X I/O功能概述 4.3.2 S3C444B0X 端口功能配置 4.3.3 S3C444B0X I/O端口特殊功能控制描述 4.3.5 S3C444B0X I/O端口应用编程
4.3.1 S3C44B0X I/O端口功能概述
总线宽度/等待控制寄存器(BWSCON)(1个) 用来决定存储器总线宽度、等待允许、高 低字节使能。见P.229
S3C44B0X存储控制器的特殊功能寄存器
Bank控制寄存器 ( BANKCONn )(8个) 用来确定存储器读写时序。 P.229 ⑴ (BANKCONn: nGCS0-nGCS5)
所有存储器空间的访问周期都可以通过编
程配置; 提供外部扩展总线的等待周期; 在低功耗的情况下支持DRAM/SDARM自 动刷新; 支持地址对称或非地址对称的DRAM。
三、Cache和片内SRAM
4路组相联统一的8KB指令/数据Cache; 未作为Cache使用的4/8 Kbytes Cache存
S3C44B0X存储控制器的特殊功能寄存器
Bank大小寄存器(BANKSIZE)(1个) 用来设置Bank6/Bank7的存储区大小。见P.231 表4-41
S3C44B0X存储控制器的特殊功能寄存器
Bank6—Bank7模式设置寄存器(MRSR) (2个) 用来决定Bank6、Bank7的存储模式。
二、系统(存储)管理
支持大、小端模式(通过外部引脚来选择); 地址空间:包含8个存储体,每个存储体的大小
为32M字节,总共有256M字节的地址空间; 对所有存储体的访问大小均可进行改变(8位/16 位/32位); 8个存储体中,Bank0~Bank5可以用于ROM、 SRAM等存储器,Bank6、Bank7可用于ROM、 SRAM、FP/EDO(Extended Data Out DRAM) /SDRAM等存储器; 7个存储体起始地址固定,1个存储体的起始地址 可变。
S3C44B0XPWM定时器功能及应用
❖ 定时器4和5 则具有4个分频信号输出(1/2, 1/4, 1/8,1/16)的时钟分割器和一个输入信号个定时器从时钟分割器的输出得到它们自己的时 钟源,时钟分割器则从对应的8位预分频器得到时 钟源。
❖ 8位预分频器是可编程的,它的频率通过MCLK除以 保存在TCFG0和 TCFG1寄存器中除数的结果设定。
❖ TCNTOn是16位定时器Timer0~Timer5观察寄存 器.
❖ 在以上的寄存器中,定时器n计数/比较缓冲寄存器 可读写寄存器,定时器n计数观察寄存器为只读寄 存器。
TCMPBn
Bit Description
Initial State
定时器比较缓冲区寄存器 [15:0] Setting compare buffer value 0x00000000 for Timer(0..4)
❖ 8位预分频器和一个独立的4位分割器组合起来可以 产生不同的频率定时器时钟源输出。
定时器配置寄存器0(TCFG0)
❖ 定时器输入时钟频率 =MCLK/{预分频值+1}/{分割值} 其中预分频值为0~255 分割值为2,4, 8,16,32。
❖ 定时器配置寄存器TCFG0主要是配置3个8位 预分频器值和死区长度值。
Bit Description
定时器观察寄存器
[15:0] Setting count observation value for Timer
Initial State 0x00000000
自动装载
❖ 自动装载操作是当TCNTn为0时,复制 TCNTBn到TCNTn中。写到TCNTBn中的值 只有在TCNTn为0且自动装载使能的时候装 载到TCNTn中。
❖
div=MCLK/(预分频值+1)/ 时频驱动器取值/freq
❖ 8位预分频器是可编程的,它的频率通过MCLK除以 保存在TCFG0和 TCFG1寄存器中除数的结果设定。
❖ TCNTOn是16位定时器Timer0~Timer5观察寄存 器.
❖ 在以上的寄存器中,定时器n计数/比较缓冲寄存器 可读写寄存器,定时器n计数观察寄存器为只读寄 存器。
TCMPBn
Bit Description
Initial State
定时器比较缓冲区寄存器 [15:0] Setting compare buffer value 0x00000000 for Timer(0..4)
❖ 8位预分频器和一个独立的4位分割器组合起来可以 产生不同的频率定时器时钟源输出。
定时器配置寄存器0(TCFG0)
❖ 定时器输入时钟频率 =MCLK/{预分频值+1}/{分割值} 其中预分频值为0~255 分割值为2,4, 8,16,32。
❖ 定时器配置寄存器TCFG0主要是配置3个8位 预分频器值和死区长度值。
Bit Description
定时器观察寄存器
[15:0] Setting count observation value for Timer
Initial State 0x00000000
自动装载
❖ 自动装载操作是当TCNTn为0时,复制 TCNTBn到TCNTn中。写到TCNTBn中的值 只有在TCNTn为0且自动装载使能的时候装 载到TCNTn中。
❖
div=MCLK/(预分频值+1)/ 时频驱动器取值/freq
S3C44B0X PWM
2、设置启动位,手动更新清零;翻转位置0FF关闭;自动 重载使能,这样定时器的倒计时被启动开始工作。 3、当TCNTn=TCMPn时,TOUTn的电平由低—高;当TCNTn=0, 引发中断请求;同时TCNTBn的值载入到一个临时寄存器 中。在下一个定时器节拍,TCNTn从临时寄存器中重载 入计数值。(即80) 4、在中断服务程序中,TCNTBn和TCMPBn被设置为80 (20+60)和60.用于下一个周期。也就是第三个周期。 5、当TCNTn=TCMPn,TOUTn的电平由低变高。当TCNTn=0时, 引发中断请求;同时,TCNTn自动重载入TCNTBn的值。 6、在中断服务程序中,自动重载和中断请求位被禁止。 7、当TCNTn的值和TCMPn的值一致时,TOUTn的电平由低— 高。当TCNTn到达0时,TCNTn不再自动重载值,定时器 由于自动重载功能的停止而停止。
产生一个PWM波
问题:利用定时器n,产生一个如下的PWM 波形?
具体步骤: 具体步骤:
1、使能自动重载功能 设置TCNTBn=160 (50+110),TCMPBn=110 设置手动更新位和配置翻转位(手动更新位是为 了把TCNTBn和TCMPBn中的值加载到TCNTn和 TCMPn中,因为TCNTn寄存器一开始未定义起始 寄存器一开始未定义起始 值,所以起始值必须以手动更新的形式来加载。) 设置TCNTBn和TCMPBn为80(40+40)和40, 作为下一个周期的重置值。(根据双缓冲特以工作在中断模式或 DMA 模式; -3 个 8 位预分频器和 2 个 5 位分割器和 1 个 4 位分割器; -输出波形的占空比可编程控制(PWM) -自动加载模式或单触发脉冲模式 -死区产生器
2、PWM定时器的操作
第4章 第53节 基于S3C44B0X功能模块及应用开发介绍
44BINIT.s给出的S3C44B0X 一级中断向量表地址分布
特殊功能寄存器
中断控制寄存器 中断挂起寄存器 中断模式寄存器 中断屏蔽寄存器 IRQ向量模式相关寄存器 IRQ从群优先级寄存器 IRQ主群优先级寄存器 当前IRQ从群优先级寄存器 当前IRQ主群优先级寄存器 IRQ中断服务挂起寄存器 IRQ/FIQ中断挂起清零寄存器
// 1) setting value
// 2) setting control register
// 3) configure pull-up resistor.
// PORT A GROUP
//
0
// A24 A23 A22 A21 A20 A19 A18 A17 A16 A0
1. S3C44B0X I/O功能概述 2. S3C44B0X I/O功能及应用描述
3、S3C44B0X I/O端口应用编程
1)端口初始化
void port_init(void)
{
// CAUTION:Follow the configuration order for setting the ports.
S3C44B0X优先级产生模块的内部结构如下一页幻灯片插图 所示。
图中主单元(主群)的中断源优先级定义: [1] mGA、mGB、mGC、mGD>mGKA>mGKB; [2] mGA、 mGB 、 mGC 、 mGD之 间 优 先 级 可 以 通 过 对
I_CMST寄存器编程设定或者可轮询 图中从单元(从群)的中断源优先级定义: ① sGA、sGB、sGC、sGD>sGKA>sGKB; ② sGA、sGB、sGC、sGD之间优先级可以通过对I_PSLV
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
地址:0x01E00014 优先级产生模块包括5个单元:1个主单元,4个辅单元; 主单元管理4个可编程优先级的辅单元和2个中断源。 辅单元优先级通过对I_PMST寄存器设置决定; 2个中断源INT_RTC和 INT_ADC在26个中断源中优先级最低。
2.辅单元优先级寄存器I_PSLV
地址:0x01E00010 每个辅单元管理6个中断源:4个可编程优先级中 断 源(sGn)优先级通过I_PSLV寄存器设定; 2个固定优先级中断源(Kn)在6个中断源中优先 级最低。
中断优先级
FIQ中断比IRQ中断有更高的优先级; 位于sGA,sGB,sGC,sGD的优先级总是高于位于 sGKA,sGKB的中断优先级; 在sGA,sGB,sGC,sGD之间的优先级高低是可编程的或 通过轮转方式来决定; 在sGKA和sGKB之间, sGKA总是拥有更高的优先级; mGA,mGB,mGC,mGD组中的优先级总是高于 mGKA和 mGKBmGKA和mGKB在所有中断源中优先级是最低的; mGA,mGB,mGC,mGD组中的优先级是可编程的或通过 轮转方式决定的; mGKA和mGKB之间, mGKA总是有更高的优先级。
FIQ必须尽快处理事情并离开这个模式;
IRQ可以被FIQ中断,但IRQ不能中断FIQ; 为使FIQ跟更快,FIQ模式具有更多的私有寄
存器。
PSR的F位和I位
PSR 指 ARM7TDMI处理器的程序状态寄 存器
PSR[7]:I=1,处理器不接收来自IRQ的中断; PSR[8]:F=1
除全局屏蔽位,其余26位依次对应着
每个中断源; 屏蔽位为0,则CPU将对中断请求响应; 全局屏蔽位置1,所有中断请求都不会 被响应。 INTMSK的位定义如下表:
INTMSK寄存器位Q矢量模式相关的寄存器如下表
1.主单元优先级寄存器I_PMST
中断控制寄存器INTCON
地址:0x01E00000, 初值:0x7 选择中断的模式,IRQ及FIQ的使能设置
中断控制寄存器INTPND
地址:0x01E00004
某个中断发生时,INTPND中的相硬位置1; 清除INTPND的方式是向I_ISPC/F_ISPC的相 应位置1;
INTPND中的
中断的产生分别来自按钮SB2和SB3,当按 钮按下时,EXINT6或EXINT7和地连接,输 入低电平,从而向CPU发出中断请求。当 CPU接受中断后,进入相应的中断服务程序, 实现LED1或LED2的显示功能。 由于EXINT6和EXINT7是共用一个中断控制 器,所以在同一时间内CPU只能受理其中一 个中断,也就是说,当按钮SB2按下进入中 断后,再按SB3是没用的,CPU在处理完 EXINT6中断前是不会受理来自EXINT7的中 断。
3.当前辅单元中IRQ中断优先级寄存器 I_CSLV
地址:0x1E00018
I_CSLV表明辅单元中断源中当前的优先级状态
当前主单元中辅单元和IRQ中断源的优先 级寄存器 I_CMST
地址: 0x01E0001C
I_CMST表明当前主单元中辅单元和IRQ中断源的
优先级。
5. IRQ/FIQ中断挂起清零寄存器 I_ISPC/F_ISPC
中断源矢量地址表
中断优先级模块
中断优先级模块
中断优先级产生模块包含5个单元,1个 主单元,4个辅助单元; 每个辅助单元有4个可编程的优先级源 (sGn)和2个固定的优先级源(sGKn); 2个固定的优先级源在6个中断源中优先 级是最低的。 主单元决定了4个辅单元和2个中断源 (INT_RTC、INT_ADC)之间的优先级排列;
中断源详细列表
中断源列表说明
EINT4、EINT5、EINT6、EINT7共用一个 中断请求源; 中断程序通过读寄存器EXTINTPND[3:0], 来区别4个中断源; 在中断处理程序结束时,EXTINTPND[3: 0]必须清除。
中断源矢量地址
30个中断源,26个中断矢量; EINT4/5/6/7 共用一个中断矢量地址; INT_UERR0/1共用一个中断矢量地址。 详细见下表。
IRQ FIQ S3c44b0x 中断控制器 30个中断源
中断控制器的功能
响应来自FIQ(快速中断请求)或IRQ(普通
中端请求)的中断,并请求内核对中端进行 处理;当有多个中断同时发生时,中断控制 器要决定首先处理哪一级中断。
S3C44B0X中断控制器
特点概述
支持30个中断源,包括8个外部中断源
地址:0x01E00024/0x01E0003C 主要作用:在某个中断结束时,通过
向I_ISPC/F_ISPC相应位写1来清除中 断挂起寄存器INTPND中的中断挂起位。
I_ISPC/F_ISPC的位定义
S3C44B0X 中断控制器应用
使用按钮SB2触发 EINT6,LED1亮, 同时8段数码管由0到 F显示1次,8段数码 管显示完后,LED1 熄灭。 使用按钮SB3触发 EINT7,LED2亮, 同时8段数码管由F到 0显示1次,8段数码 管显示完后,LED2 熄灭。
pending位不能被INTMSK
屏蔽。 INTPND寄存器的位定义表如下:
INTPND寄存器位定义
中断模式寄存器INTMOD
地址:0x01E00008 相应位置1选FIQ模式,位清除选IRQ模
式。
具体位定义见下图
INTMOD寄存器位定义
中断屏蔽寄存器INTMSK
地址:0x01E0000C
中断控制器支持26个中断信号,其中外部中断4/5/6/7复用
到一个中断信号上(读EXTINTPND寄存器来判断)
每个中断信号处理均可独立设置成FIQ (快速中断请求)或者
IRQ (普通中断请求)模式
中断信号处理均可采用矢量处理方法或者非矢量处理方法 支持中断优先级排队
中断模式
ARM7TDMI有2种类型的中断模式: FIQ 和IRQ。 两种模式之间的区别:
第16小组 SA11011910 王涛 SA11011913 张海博
主要内容
S3C44B0X 中断概述 S3C44B0X 中断控制器 S3C44B0X 中断控制寄存器 S3C44B0X 中断控制器应用
S3C44B0X 的中断控制器概述
S3C44B0X中断源(30个):
1个看门狗定时器;6个定时器;6个UART; 8个外部中断EINT0-7;4个DMA; 2个RTC; 1个ADC; 1个IIC;1个SIO ARM7TDMI
处理器不接收来自FRQ的中断
为了使能中断机制,PSR的I或F位必需清 零,同时中断屏蔽寄存器(INTMSK)的相 应位也必须清零。
中断源
有26个中断源提供给中断控制器。 4个外部中断(EINT4/5/6/7)相或送中 断控制器。 2个UART错误中断(UERRO/1)相或送中 断控制器。 中断源的详细信息见下表。