DSP-3.6中断服务程序

合集下载

ch3 DSP的中断控制

ch3 DSP的中断控制

PIE级: PIE模块将8个外设和外部引脚中断多路复用 成一个CPU中断。 这些中断分成12组:PIE组1 – PIE组12。 一个组内的中断多路复用成一个CPU中断。例 如,PIE组1被多路复用成CPU中断1(INT1) ,PIE组12被复用成CPU中断12(INT12)。 连接到剩余CPU中断的中断源不复用。 对于非多路复用的中断,PIE直接将中断请求 传递给CPU。
对于多路复用的中断源,PIE模块中的每个中断有 一个相关的标志寄存器(PIEIFRx)和使能( PIEIERx)寄存器(x = PIE组1 – PIE组12)。
每个位(表示为y)对应组内8个多路复用中断中 的一个。这样,PIEIFRx.y和PIEIERx.y对应PIE组 x(x = 1-12)的中断y(y = 1-8)。
图 3.1 概述:使用PIE模块多路复用中断
图 3.1所示为所有多路复用的PIE中断的中断操作 顺序。不复用的中断源直接传送到CPU。
中断发生和响应过程: 外设级 -> PIE级
->
CPU级
外设级: 外设中出现一个中断产生的事件。该事件对应的 中断标志位(IF)在寄存器中被置位。 如果相应的中断使能(IE)位被置位,则外设向 PIE控制器产生一个中断请求。如果中断在外设 级未被使能,IF就保持置位,直到被软件清除。 如果中断稍后被使能,并且中断标志仍然置位, 中断请求就提交到PIE。 外设寄存器中的中断标志必须手动清除。
9. 对于多路复用的中断,PIE模块使用PIEIERx和 PIEIFRx寄存器的当前值来译码应该使用哪个向 量地址。有两种可能的情形: a.组内最高优先级中断的向量(该中断在 PIEIERx寄存器中被使能,并且在PIEIFRx中标 识为挂起)被提取出来用作跳转地址。这样,即 使在第7步以后有一个更高优先级的已经使能的 中断被标识出来,它也先被服务。 b.如果组内没有标识出来的中断被使能,PIE 将用该组内最高优先级中断的向量来响应。该向 量用作INTx.1的跳转地址。这个操作对应28x TRAP或INT指令。

浅谈TMS320C6000中断程序的实现方法

浅谈TMS320C6000中断程序的实现方法

浅谈TMS320C6000中断程序的实现方法
杨辉;秦品健
【期刊名称】《信息技术》
【年(卷),期】2002(000)009
【摘要】主要讨论中断服务程序在TMS320C6000 DSP中的几种用C语言来实现的方法.
【总页数】3页(P36-37,40)
【作者】杨辉;秦品健
【作者单位】中国科学院等离子体物理研究所,合肥,230031;中国科学院等离子体物理研究所,合肥,230031
【正文语种】中文
【中图分类】TP274
【相关文献】
1.浅谈运用计算机程序编制实现大坝ANSYS三维模型自动建立的方法 [J], 唐兰;侯波
2.浅谈Vega软件中应用程序实现飞行仿真方法 [J], 郑学恩;吴玉斌
3.浅谈Vega软件中应用程序实现飞行仿真方法 [J], 郑学恩;吴玉斌
4.一种实现USB随机中断传输的设备驱动程序设计方法 [J], 周洪建;蔡桂艳
5.浅谈自建数据库馆藏字段自动添加的程序实现方法 [J], 徐守志
因版权原因,仅展示原文概要,查看原文内容请购买。

DSP中断设置简明教程

DSP中断设置简明教程

[DSP+ARM] [转载]DSP中断设置简明教程定时器, 工作, 寄存器, 通用, 程序一、简述本文介绍TMS320C6000系列中断设置的简明方法。

通过示例定时器中断,MCBSP串口接收中断及外部中断这三种中断实现过程,介绍如何实现中断各个寄存器的配置,中断向量表书写以及中断服务函数。

最后提供一个简要的示例程序可供大家下载使用。

此示例在DSK6416的TI官方实验板上通过测试。

由于定时器和串口工作模式较繁,因此对中断无关部分不做介绍。

二、实现DSP中断需要做哪些通用工作设置允许哪些非屏蔽中断设置各个允许的非屏蔽中断的中断来源设置开启总中断设计中断向量表将中断向量表通过cmd文件挂载到指令内存提供中断处理函数如果中断向量表首地址挂载的不是0地址,那么需要设置中断向量表地址寄存器对于不同的中断源,需要做各个自己的工作,比如如果是外部中断,那么需要设置管脚极性,即由高->低产生中断抑或反之。

为了照顾知识较少的读者,下面将从一个新工程出发,引导大家建立一个中断示例程序。

如果您对建立工程很熟悉,可以跳过此步。

三、建立新工程1.点击Project->New,设置Project Name为intexample,Project Type为Executable,Target选择您需要的器件,在此由于本人使用的是DSK6416评估板。

因此选择TMS320C64XX。

2.添加标准库rts6400.lib,以便自动产生c_int00等函数。

右击当前工程,选择“Add Files to Project”,选择库所在路径,一般为CCS安装自带,可参考本CCS3.1版本的路径地址:CCStudio_v3.1C6000cgtoolslibrts6400.lib如果您使用的是其他器件类型,请在lib文件夹内选择其他器件库。

添加源文件,选择File->New->Source File,保存为main.c到工程路径下。

第四章DSP系统配置和中断

第四章DSP系统配置和中断
第4章 系统配置和中断
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 系统配置寄存器 中断优先级和中断矢量表 外设中断扩展控制器 中断矢量 中断响应流程 中断寄存器 外部中断控制寄存器 复位 非法地址
4.1 系统配置寄存器
SCSR1
4.1 系统配置寄存器
CLKSRC:CLKOUT引脚源选择
0:输入限定器锁存脉冲至少5个时钟周期长 0 5 1:至少11个时钟周期长。
WD OVERRIDE:WD保护位。该位写1清0
0:用户不能通过软件来禁止WD 1:能够通过软件禁止WD工作。通过软件将WDCR 寄存器中的WDDIS位置1来禁止WD工作。
4.1 系统配置寄存器
XMIF HI-Z:
0:所有XMIF信号处于正常驱动模式 1:所有XMIF信号处于高组态
0 输出CPU时钟 1 输出WDCLK时钟
LPM(1:0):功耗模式选择位
4.1 系统配置寄存器
CLKPS(2:0):PLL时钟预定标选择位, 选择PLL倍频系数。
4.1 系统配置寄存器
SCSR2:
4.1 系统配置寄存器
I/P QUAL:CAP1~CAP2、XINT1~2、ADCSOC、 PDPINTA/B引脚作特殊功能引脚输入时钟限定 器
外设中断矢量寄存器
PIVR装有优先级最高的登记中断的中断 矢量
外设中断请求寄存器
外设中断响应寄存器
一般只用于测试,不为用户使用
4.7 外部中断控制寄存器
XINT1CR XINT2CR
XINT1CR
D15:0-无跳变;1-有跳变 D2:0-下降沿,1-上升沿 D1:0-高优先级,1-低优先级 D0:0-禁止中断,1-允许中断

DSP 4 中断处理

DSP 4 中断处理

DSP与嵌入式系统
代码解释
END OF PART IV
DSP与嵌入式系统
0.2 中断的重要性
• 中断是外界通知嵌入式系统的重要通 道,是嵌入式系统获取外界信息的重要 来源。 • 如果没有中断,嵌入式系统就成为一个 封闭的,非实时的孤立的系统。 • 系统内部调度的重要依据!
DSP与嵌入式系统
1 中断的概念与重要性
• 类比于单片机系统: 中断重要性 中断处理过程 处理要求 涉及外围硬件 单片机系统 非常重要 相对简单 短、平、快 数量不多 嵌入式系统 非常重要 比较复杂,分 上、下层处理 短、平、快 情况复杂,数 量巨大
DSP与嵌入式系统
中断处理的学习方法
• 相关基础知识的储备,对处理过程的 理解; • 对中断处理代码的阅读; • 实际动手操作;
嵌入式的最大特点就是实践性!
DSP与嵌入式系统
5 其他深入的课题讨论
零地址重映射 • 可重入中断 • 上述中断概念的代码表述

DSP与嵌入式系统
remap
• ARM体系结构要求在“0地址”建立 异常向量表; • 实际产品中,“0地址”必须事先放置 好上电启动所需的代码; 是否矛盾??
User mode r0-r12, r15, and cpsr
User mode r0-r12, r15, and cpsr
r13 (sp) r14 (lr)
r13 (sp) r14 (lr)
r13 (sp) r14 (lr)
r13 (sp) r14 (lr)
注意: System 模式使用的是 User 模式下的寄存器组
《DSP与嵌入式系统》
--4 中断处理 电子科学与工程学院 肖建
DSP与嵌入式系统

dsp原理与应用技术中的中断

dsp原理与应用技术中的中断

DSP原理与应用技术中的中断什么是中断中断是指当处理器执行某个任务时,受到一个信号或事件的触发而暂停当前任务,跳转到指定的中断处理程序执行,处理完成后再返回原来的任务。

在DSP(数字信号处理)领域中,中断机制起着重要的作用。

中断可以分为硬件中断和软件中断两种。

硬件中断是由外部设备或芯片发出的中断信号触发,如计时器中断、外部设备输入中断等。

而软件中断是由程序的执行过程中的特殊指令或软件的调用而产生的中断。

DSP中的中断在DSP中,中断主要用于处理实时要求较高的应用,如音频处理、实时图像处理等。

中断的出现可以有效地降低系统的响应时间,提高系统的实时性。

DSP芯片通常提供多个中断向量,每个中断向量对应一个特定的中断源。

中断向量用来指示中断处理程序的入口地址,当中断发生时,处理器会根据中断向量跳转到相应的中断处理程序。

DSP中的中断优先级在DSP中,不同的中断有不同的优先级。

当多个中断同时发生时,处理器会根据中断优先级决定响应哪个中断。

中断优先级通常通过特定的寄存器配置。

处理器会根据中断触发的先后顺序以及中断优先级来决定响应的中断。

DSP中的中断处理过程中断处理过程通常包括以下几个步骤:1.中断触发:当中断源产生中断信号时,处理器会检测中断信号,并做出响应。

2.中断优先级判断:处理器会根据中断优先级判断是否响应当前中断请求。

3.中断向量跳转:如果中断请求被接受,处理器会根据中断向量找到相应的中断处理程序的入口地址,并跳转到该地址处执行中断处理程序。

4.中断处理程序:中断处理程序是中断的实际执行部分,它会处理中断所需的任务,如保存寄存器状态、处理中断源的数据等。

5.中断结束:当中断处理程序执行完成后,处理器会返回到原来的任务继续执行,完成中断的处理过程。

DSP中的中断应用技术中断在DSP应用中有广泛的应用,如音频处理、图像处理、通信等方面。

下面列举几个常见的DSP中的中断应用技术:1.实时音频处理:中断机制可以使得DSP实时响应音频输入信号,实现实时的音频处理,如音效处理、语音识别、语音合成等。

DSP(TMS320C6713)入门之旅三、中断的理解和使用

DSP(TMS320C6713)入门之旅三、中断的理解和使用

学习一个芯片的功能时,我的建议是先学会如何用C语言点亮一个LED灯,然后就是学习一下使用他的中断,因为在做芯片的时候,各个厂家有自己的一套自己的方法。

所以使用中断的就必须了解很多概念,比如如何打开中断,如何安装自己的中断子服务程序,等等!先介绍一下什么叫中断:你在下象棋,突然电话响了,你回屋接电话,然后回来继续下象棋,这个过程就叫做中断响应过程(中断过程)。

CPU执行正常任务———————下象棋保护现场———————————-你已经想好要―将军‖,先在脑海中记下来。

中断发生———————————-电话响-中断服务程序—————————-接电话恢复现场———————————-回来后恢复刚才想法中断返回———————————-你回来继续下象棋中断屏蔽———————————-Boss 正在训话,要求所有电话关机,你不能接电话了。

非屏蔽中断——————————-你内急,即使是Boss 在训话,你还是得到外面去嘘嘘。

可屏蔽中断——————————-你在―闭关修炼‖,可以不受外界干扰所以我们在使用中断之前先得告诉CPU,我们要使用那个中断,当中断发生的时候,你的执行程序的去向(也就是中断服务子程序),最后在返回我们被中断的函数。

这样就完成了我们的中断历程!看看6713执行中断的流程:一、使能了全局中断和子中断,那么CPU每执行一条指令之前就去查询一下有没有中断被置位,如果有产生的,那么CPU就要跳转!二、软件把CPU内部的寄存器A0~A15,B0~B15,等等这些寄存器的值推入堆栈保存,把当前PC寄存器的值放入IRP寄存器中以备中断返回能找到当前被打断的位置(保存现场,中断函数前面得加interrupt关键字)三、CPU的PC指针读出中断向量表的地址,也就是把(ISTP寄存器的值+子中断向量偏移量)装入PC寄存器,这样就执行跳转。

四、在中断向量表里一般有就用跳转指令,这样就可以跳转到我们用C语言编写的中断服务子程序中。

DSP中断设置简明教程

DSP中断设置简明教程

DSP中断设置简明教程DSP中断是一种用于处理实时信号的技术,允许处理器在执行其他任务时,响应外部事件或处理即时数据。

中断是一种非常重要的工具,用于实时系统中,例如音频处理、图像处理等领域。

本文将为您提供一个简明的DSP中断设置教程,帮助您了解如何在DSP中实现中断处理。

首先,我们需要了解DSP中断的基本原理和概念。

DSP中断是一种在执行主线程任务的过程中,当特定的事件发生时,系统自动中止主线程,并转而执行预定义的中断服务子程序(ISR)。

当ISR执行完毕后,系统将返回到主线程继续执行之前的任务。

因此,中断允许DSP准时响应外部事件,并在需要时采取必要的动作。

在DSP中,中断是通过中断控制器实现的。

中断控制器是一种硬件模块,用于检测外部事件并触发相应的中断。

通常,中断控制器有多个中断通道,每个通道可以连接一个外设,如定时器、ADC、UART等。

当外设的中断条件满足时,中断控制器会发送一个中断请求信号给DSP处理器。

下面是一个简单的DSP中断设置步骤:1.确定中断请求源:首先,确定哪个外设将触发中断。

例如,如果您想设置一个定时器中断,那么您需要选择一个定时器作为中断请求源。

2.配置中断控制器:将中断请求源连接到中断控制器的中断通道上。

这通常需要在DSP的寄存器中写入相应的配置值来选择中断通道。

3.编写中断服务子程序(ISR):中断服务子程序是一个函数,用于处理中断事件。

当中断发生时,DSP将暂停正在执行的主线程,并转而执行ISR。

在ISR中,您可以编写自己的处理逻辑,例如读取数据、计算、更新状态等。

4.配置中断向量表:中断向量表是一个存储中断服务子程序地址的表格。

在DSP启动或重新配置中断时,需要将ISR的地址写入中断向量表,以便DSP能够正确调用ISR。

5.启用中断:在DSP的控制寄存器中,设置相应的中断使能位,以启用中断功能。

这将使DSP能够接收到来自中断控制器的中断请求。

6.处理中断请求:当外设满足中断条件时,中断控制器会发送中断请求信号给DSP。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

struct PIE_VECT_TABLE{ // 定义中断向量表的结构体类型
//CPU 级中断向量 PINT PIE1_RESERVED; PINT PIE2_RESERVED; PINT PIE3_RESERVED; PINT PIE4_RESERVED; PINT PIE5_RESERVED; PINT PIE6_RESERVED; PINT PIE7_RESERVED; PINT PIE8_RESERVED; PINT PIE9_RESERVED; PINT PIE10_RESERVED; PINT PIE11_RESERVED; PINT PIE12_RESERVED; PINT PIE13_RESERVED;
//事件管理器 A—EVA //事件管理器 A—EVA //事件管理器 A—EVA //事件管理器 A—EVA //事件管理器 A—EVA //事件管理器 A—EVA //事件管理器 A—EVA //保留
//第 3 组 PIE 外设中断向量—PIE 3 …
//第 12 组 PIE 外设中断向量—PIE 12 …
//非 PIE 模块外设中断向量 PINT XINT13; PINT TINT2; PINT DATALOG; PINT RTOSINT; PINT EMUINT; PINT XNMI; PINT ILLEGAL; PINT USER0; PINT USER1; PICPU 定时器 TIMER2 //CPU 调试数据记录日志中断 //CPU 实时操作系统中断 //CPU 仿真中断 //外部非屏蔽中断 //非法操作中断 //用户定义陷阱 0 //用户定义陷阱 1 //用户定义陷阱 2
1
通信 0801-04 信工 0801-03
DSP 原理与应用
PINT PINT PINT PINT PINT PINT PINT PINT PINT
USER3; USER4; USER5; USER6; USER7; USER8; USER9; USER10; USER11;
//用户定义陷阱 3 //用户定义陷阱 4 //用户定义陷阱 5 //用户定义陷阱 6 //用户定义陷阱 7 //用户定义陷阱 8 //用户定义陷阱 9 //用户定义陷阱 10 //用户定义陷阱 11
//12 组 PIE 模块管理的外部中断源中断向量
//第 1 组 PIE 外设中断向量—PIE 1 PINT PDPINTA; PINT PDPINTB; PINT rsvd1_3; PINT XINT1; PINT XINT2; PINT ADCINT; PINT TINT0; PINT WAKEINT;
3
//事件管理器 A—EVA //事件管理器 B—EVB //保留 //外部中断 1 //外部中断 1 //ADC 模块 //定时器 0 //WD 模块
//第 2 组 PIE 外设中断向量—PIE 2 PINT CMP1INT; PINT CMP2INT; PINT CMP3INT; PINT T1PINT; PINT T1CINT; PINT T1UFINT; PINT T1OFINT; PINT rsvd2_8;
}
2
2011.3.20
通信 0801-04 信工 0801-03
DSP 原理与应用
2011.3.20
extern struct PIE_VECT_TABLE PieVectTable; //PIE 中断向量表实体变量全局声明
}
主程序(test.c)部分源代码:
//******************************** test.c********************************
//CPU 级复位向量 // CPU 级 INT1 向量 // CPU 级 INT2 向量 // CPU 级 INT3 向量 // CPU 级 INT4 向量 // CPU 级 INT5 向量 // CPU 级 INT6 向量 // CPU 级 INT7 向量 // CPU 级 INT8 向量 // CPU 级 INT9 向量 // CPU 级 INT10 向量 // CPU 级 INT11 向量 // CPU 级 INT12 向量
PieVectTable.XINT1=&ISRXINT1; 注意:中断服务程序的函数声明一定要放在主程序开始处。
DSP281x_PieVect.h 部分源代码如下: //************************************************************************* //****************************DSP281x_PieVect.h**************************** //************************************************************************* typedef interrupt void (*PINT) (void)
//予中断向量表实体对应成员,即使 XINT1 指向程序中所定义的 XINT1 中断服务程序

}
interrupt void ISRXINT1(void) {
// XINT1 中断服务程序 … // 中断处理
}
习题与思考题
1. 简述 TMS320F2812 CPU 内部各组成部分的功能。 2. 简述 TMS320F2812 DSP 器件总线结构的特点。 3. TMS320F2812 DSP 有哪几种低功耗模式? 各有何特点? 4. 简述 TMS320F2812 FLASH 存储器的结构特点。 5. 简述 TMS320F2812 中断源的类型。 6. 简述 TMS320F2812 DSP 可屏蔽中断的响应过程。 7. TMS320F2812 DSP 的可屏蔽中断是如何管理的? 8. 简述 TMS320F2812 中断的处理模式。 9. 简述 TMS320F2812 DSP 中断向量表映射的基本原理,并说明控制信号 VMAP、M0M1MAP、MP/MC、 ENPIE 的功能。
interrupt void ISRXINT1(void)
//中断服务程序函数声明
void main(void)
{

InitPieCtrl( ); //初始化 PIE 控制寄存器
IER=0x0000; //禁止所有可屏蔽中断
IFR=0x0000;
EALLOW;
PieVectTable.XINT1=&ISRXINT1; //将外部中断 XINT1 的服务程序入口地址赋
通信 0801-04 信工 0801-03
DSP 原理与应用
2011.3.20
3.6 中断服务程序
在实际应用中,由文件“DSP281x_PieVect.h”中定义 PIE_VECT_TABLE 结构体,该结 构体的每个成员都表示一个中断源的中断向量,这个结构体类型被用于定义一个 PIE 中断向 量表实体 PieVectTable,用户可以通过地址赋值将中断服务程序入口地址赋予该实体 PieVectTable 中的成员变量,如
相关文档
最新文档