DSP C54X的系统控制
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
INT1 功
INT0 能
名称
保留 DMAC5 DMAC4 BXINT1 BRINT1 HPINT INT3 TINT1
保留位,总是0 保留位,总是0 DMA通道5 DMA通道5中断屏蔽位 通道 DMA通道4 DMA通道4中断屏蔽位 通道 缓冲串口发送中断1 缓冲串口发送中断1屏蔽位 缓冲串口接收中断1屏蔽位 缓冲串口接收中断1 HPI中断屏蔽位 HPI中断屏蔽位 外部中断3 外部中断3屏蔽位 定时器中断1 定时器中断1屏蔽位
保护上下文
执行ISR 执行ISR时,有些寄存器必须保存在堆栈中。当程序从ISR返 ISR时 有些寄存器必须保存在堆栈中。当程序从ISR ISR返 回时,用户软件代码必须恢复这些寄存器的上下文 恢复这些寄存器的上下文; 回时,用户软件代码必须恢复这些寄存器的上下文; 堆栈操作指令可完成寄存器传送到堆栈中, 堆栈操作指令可完成寄存器传送到堆栈中,或者从堆栈中取 出。 PSHM、PSHD、POPM、 PSHM、PSHD、POPM、POPD
5.2 复位
使程序计数器PC=FF80H 使程序计数器PC=FF80H; PC=FF80H; 使扩展程序计数器XPC=0000H XPC=0000H; 使扩展程序计数器XPC=0000H; 使中断标志寄存器IFR=0000H IFR=0000H; 使中断标志寄存器IFR=0000H; 使数据总线处于高阻状态; 使数据总线处于高阻状态; 控制线均处于无效状态; 控制线均处于无效状态; 将地址总线置为FF80H FF80H; 将地址总线置为FF80H; IACK引脚产生中断响应信号 引脚产生中断响应信号; 使IACK引脚产生中断响应信号; 产生同步复位信号,对外围电路初始化; 产生同步复位信号,对外围电路初始化;
2
HPINT
1
INT3
0
TINT1 位
15~14 15 14 13 12 11 10 9 8 7
DMAC0
BXINT0 BRINT0 功 能
TINT0 位
6 5 4 3 2 1 0
INT2
INT1 功 能
Βιβλιοθήκη Baidu
INT0
名称
保留 DMAC5 DMAC4 BXINT1 BRINT1 HPINT INT3 TINT1
K_IPTR .set 000000001b<<7 STM #(K_IPTR),PMST
main:
.CMD文件中断向量表存储; CMD文件中断向量表存储; 文件中断向量表存储 Test2.cmd
5.2 复位
’C54x设有复位输入引脚RS,通过RS可对芯片进 C54x设有复位输入引脚RS,通过RS 设有复位输入引脚RS RS可对芯片进 行复位,使程序从FF80H单元开始执行。 FF80H单元开始执行 行复位,使程序从FF80H单元开始执行。 复位期间,处理器操作: 复位期间,处理器操作:
• 注意: 注意:
复位期间,不对其余的状态位和堆栈指针SP初始化; SP初始化 复位期间,不对其余的状态位和堆栈指针SP初始化; MP/MC=0 =0, CPU从内部程序存储器开始执行 从内部程序存储器开始执行, 若MP/MC=0,则CPU从内部程序存储器开始执行, 否则将从外部程序存储器开始执行程序。 否则将从外部程序存储器开始执行程序。
5.2 复位
•
• • • • • •
各状态值的初始值如下: 各状态值的初始值如下:
ARP=0 C=1 CPL=0 HM=0 OVLY=0 XF=1
• •
ASM=0 C16=0 DP=0 INTM=1 OVM=0
AVIS=0 CLKOFF=0 DROM=0 OVA=0 SXM=1
BRAF=0 CMPT=0 FRCT=0 OVB=0 TC=1
5.1 中断
中断标志寄存器IFR 中断标志寄存器IFR
存储器映像寄存器。当一个中断出现时,IFR中相应的 存储器映像寄存器。当一个中断出现时,IFR中相应的 中断标志位置1,直到CPU识别该中断为止。 1,直到CPU识别该中断为止 中断标志位置1,直到CPU识别该中断为止。 中断标志的清除
CPU响应该中断;复位引脚RS=0 相应的IFR标志位置1 CPU响应该中断;复位引脚RS=0;相应的IFR标志位置1; RS=0; IFR标志位置 响应该中断 使用相应的中断号响应该中断,即使用INTR #K指令 指令。 使用相应的中断号响应该中断,即使用INTR #K指令。
5.1 中断
执行中断服务程序ISR 执行中断服务程序ISR
将程序计数器PC 返回地址)值压入堆栈; 将程序计数器PC(返回地址)值压入堆栈; PC( 将中断向量( 的地址加载到PC 将中断向量(the interrupt vector)的地址加载到PC; 的地址加载到PC; 从中断向量所指定的地址开始取指; 从中断向量所指定的地址开始取指; 执行分支转移,进入中断服务程序; 执行分支转移,进入中断服务程序; 执行中断服务程序直到出现返回指令; 执行中断服务程序直到出现返回指令; 从堆栈弹出返回地址,加载到PC PC中 从堆栈弹出返回地址,加载到PC中; 继续执行主程序。 继续执行主程序。
5.3 IDLE
C54x有多种省电方式 可以使CPU暂停工作, 有多种省电方式, CPU暂停工作 ’C54x有多种省电方式,可以使CPU暂停工作, 处于休眠状态,以减小功耗,但保持CPU CPU中的内 处于休眠状态,以减小功耗,但保持CPU中的内 容。 当省电方式结束后,CPU可以继续正常工作 可以继续正常工作。 当省电方式结束后,CPU可以继续正常工作。 IDLE实现 实现: IDLE实现: 执行IDLE1 IDLE2和IDLE3三条指令 IDLE1、 三条指令; ① 执行IDLE1、IDLE2和IDLE3三条指令; 使外部信号HOLD=0 状态位HM=1 HOLD=0, HM=1。 ② 使外部信号HOLD=0,状态位HM=1。
将PMST中的IPTR位置为1FFH,MP/MC位与MP/MC引脚状 PMST中的IPTR位置为1FFH,MP/MC位 MP/MC引脚状 中的IPTR 态相同; 态相同; 状态寄存器ST0=1800H 状态寄存器ST0=1800H; ST0=1800H; ST1中的INTM位 中的INTM 将ST1中的INTM位置1,关闭所有可屏蔽中断
15 14 13 12 11 10 9 8
保 留
7 6
DMAC5
5
DMAC4
4
BXINT1
3
BRINT1
2
HPINT
1
INT3
0
TINT1 位
15~14 15 14 13 12 11 10 9 8 7
DMAC0
BXINT0 BRINT0 功 能
TINT0 位
6 5 4 3 2 1 0
INT2 名称
DMAC0 BXINT0 BRINT0 TINT0 INT2 INT1 INT0
5.1 中断
中断实例
有外部中断INT0,每秒产生1次; 有外部中断INT0,每秒产生1 INT0
中断服务子程序; 中断服务子程序; int0_isr.asm 中断向量表; 中断向量表; Vector1.asm Main文件中中断向量重新映射 文件中中断向量重新映射; Main文件中中断向量重新映射;
外设向CPU传送数据(如A/D) 外设向CPU传送数据( A/D) CPU传送数据 外设向CPU提取数据( D/A) CPU提取数据 外设向CPU提取数据(如D/A) 定时器
两类中断: 两类中断:
软件中断: INTR、TRAP或RESET。 软件中断:由程序指令产生 如:INTR、TRAP或RESET。 硬件中断: 硬件中断:由外围设备信号产生 外部硬件中断 内部硬件中断:片内外设电路信号触发
5.1 中断
可屏蔽中断
可用软件设置来屏蔽或开放的中断
非屏蔽中断
所有的软件中断 2个外部硬件中断(/RS和/NMI) 个外部硬件中断( RS和 NMI)
当同时有多个中断出现时, C54x将按照中断优 当同时有多个中断出现时,’C54x将按照中断优 将按照 高低对它们进行中断响应。 先级别的高低对它们进行中断响应 先级别的高低对它们进行中断响应。
用户可以对IMR 用户可以对IMR寄存器进行读写操作 IMR寄存器进行读写操作
5.1 中断
’C5402中断标志寄存器IFR的结构 ’C5402中断标志寄存器IFR的结构: 中断标志寄存器IFR的结构:
15 14 13 12 11 10 9 8
保 留
7 6
DMAC5
5
DMAC4
4
BXINT1
3
BRINT1
5.1 中断
中断操作流程
5.1 中断
中断向量表
中断向量号
偏移地址 优先级
5.1 中断
中断向量地址
中断向量可以映射到程序存储器除保留区域外的任何 128字页面的起始位置 128字页面的起始位置 ’C54x的中断向量地址 C54x的中断向量地址 中断向量地址=IPTR+(左移 位的中断向量序号) 左移2 中断向量地址=IPTR+(左移2位的中断向量序号) 9bits+低 高9bits+低7bits 如: IPTR=0001H,INT0的中断向量序号为10H 的中断向量序号为10 IPTR=0001H,INT0的中断向量序号为10H,
DMA通道0 DMA通道0中断屏蔽位 通道 缓冲串口发送中断0 缓冲串口发送中断0屏蔽位 缓冲串口接收中断0 缓冲串口接收中断0屏蔽位 定时器中断0 定时器中断0屏蔽位 外部中断2屏蔽位 外部中断2 外部中断1 外部中断1屏蔽位 外部中断0 外部中断0屏蔽位
5.1 中断
中断控制
中断请求 硬件器件或软件指令提出请求。 硬件器件或软件指令提出请求。 IFR相应中断标志位置 相应中断标志位置1 不管中断是否被处理器应答, IFR相应中断标志位置1。不管中断是否被处理器应答,该标志位都 会置1 当中断响应后,该标志位自动被清除。 自动被清除 会置1。当中断响应后,该标志位自动被清除。 中断响应 终止当前操作 PC自动转向相应的中断向量地址 取出中断服务程序地址, 自动转向相应的中断向量地址, PC自动转向相应的中断向量地址,取出中断服务程序地址, 发出IACK信号, IACK信号 发出IACK信号,清除相应的中断标志位 软件中断和非屏蔽中断,CPU将立即响应,进入ISR。 软件中断和非屏蔽中断,CPU将立即响应,进入ISR。 硬件可屏蔽中断,满足以下3种条件后才响应: 硬件可屏蔽中断,满足以下3种条件后才响应: INTM位清0 INTM位清0 、 IMR屏蔽位为1 、当前中断优先级最高 IMR屏蔽位为1
DMA通道0 DMA通道0中断标志 通道 缓冲串口发送中断0 缓冲串口发送中断0标志 缓冲串口接收中断0 缓冲串口接收中断0标志 定时器中断0 定时器中断0标志 外部中断2 外部中断2标志 外部中断1 外部中断1标志 外部中断0 外部中断0标志
5.1 中断
中断屏蔽寄存器IMR 中断屏蔽寄存器IMR的结构 IMR的结构
中断屏蔽寄存器IMR 中断屏蔽寄存器IMR
存储器映像寄存器,用于控制中断源的屏蔽和开放。 存储器映像寄存器,用于控制中断源的屏蔽和开放。 状态寄存器ST1中的INTM ST1中的INTM位 状态寄存器ST1中的INTM位为0时,全局中断允许 IMR中的某位置 中的某位置1 IMR中的某位置1时,开放相应的中断
名称
DMAC0 BXINT0 BRINT0 TINT0 INT2 INT1 INT0
保留位,总是0 保留位,总是0 DMA通道5 DMA通道5中断标志 通道 DMA通道4 DMA通道4中断标志 通道 缓冲串口发送中断1 缓冲串口发送中断1标志 缓冲串口接收中断1 缓冲串口接收中断1标志 HPI中断标志 HPI中断标志 外部中断3 外部中断3标志 定时器中断1标志 定时器中断1
’C54X的系统控制 的系统控制
内容提要
1 2 3 4
中断操作 系统复位 IDLE
5.1 中断
中断系统是DSP应用系统实现实时操作和多任务 中断系统是DSP应用系统实现实时操作和多任务 DSP 多进程操作的关键部分。 多进程操作的关键部分。
中断信号使CPU暂停正在执行的程序, 中断信号使CPU暂停正在执行的程序,转而执行中断 CPU暂停正在执行的程序 服务程序(ISR) 服务程序(ISR) 中断请求信号的产生
中断向量的地址为00C0H。 中断向量的地址为00C0H。 00C0H
5.1 中断
硬件复位时,IPTR=1FFH,复位向量地址为FF80H FF80H, 硬件复位时,IPTR=1FFH,复位向量地址为FF80H, CPU将从 FF80H开始执行程序 将从0 开始执行程序。 CPU将从0FF80H开始执行程序。 在程序中,通过对IPTR重新赋值,把中断向量映射到 在程序中,通过对IPTR重新赋值, IPTR重新赋值 程序存储器的其他地址。 程序存储器的其他地址。 例: 用0001H加载IPTR,中断向量将被移到0080H单元 0001H加载IPTR 中断向量将被移到0080 IPTR, 0080H 开始的程序存储器空间。 开始的程序存储器空间。