DSP中断向量表和中断子向量表(精)

合集下载

简述中断向量表及其作用

简述中断向量表及其作用

简述中断向量表及其作用
中断向量表是一种在计算机技术中日益重要的工具,用于管理指令和数据。

它有效地提高了计算机系统的可扩展性和可维护性,在程序设计中发挥着重要作用。

它的基本概念是把指令和数据保存在计算机处理器可以访问的
内存单元中,并将内存单元称为中断向量表。

中断向量表是一种特殊的内存结构,它提供了一个统一的地址,以指向更具体的指令和数据存储区。

它的主要功能是提供统一的指令和数据入口,以便处理器可以更容易地定位到特定的指令或数据。

同时,中断向量表还提供了编程模型和异常处理机制。

它提供了一种被称为“中断向量”的方法,用于定义不同的响应程序,以处理计算机发生的异常情况,这就是所谓的“中断”机制。

其中,程序的控制将从出现异常的地方中断,转移到由中断向量表所指定的中断处理程序中。

这种机制可以确保程序的实时执行,可以有效地节约内存空间,并且可以避免一些程序的错误。

此外,中断向量表还提供了一种“程序模块”的概念,即“模块化编程”。

它允许将大型程序分解成若干小模块,以降低程序的耦合度,提高可维护性。

此外,将模块划分到不同的中断向量表中,可以实现程序的动态加载和执行,为程序的性能优化提供了极大的便利。

总之,中断向量表是一种在计算机技术中极具价值的工具,它可有效地改善程序的灵活性和可维护性,为后续计算机系统的发展奠定了良好的基础。

微机原理与接口技术:中断向量和中断向量表1

微机原理与接口技术:中断向量和中断向量表1
10
从类型32开始直到255作为用户中断类型,用户中断向量由用户填写 到中断向量表中,中断服务程序也由用户编写。
11
5
8086/8088CPU的中断系统可以处理256种中断。每种中断都有对应 的中断服务程序。中断服务程序的入口地址称为中断向量。256种中断 向量存储在内存中构成一张表,称为中断向量表。 每个中断向量都包括两部分:段基址和偏移地址。因此,存放1个中断 向量需要4个内存单元,256种中断向量共需要1K个内存单元。
6
中断向量在中断向量表中的存放 首地址称为向量地址,其值为: 中断类型码×4。 如DOS系统功能调用的中断类型号 为21H,向量地址为:n×4=84H。
7
当CPU调用中断类型码为n的中断服务程序时,首先把n乘以4,得到 它的向量地址4n,然后把4n+1:4n两个单元的内容取出并装入IP寄存 器;再把(4n+3:4n+2)两个单元的内容取出并装入CS寄存器, CPU就获得了n的中断服务程序的入口地址,进而转去执行中断服务程 序。
知识点 6.5
8086/8088中断系统
1
2

知识点 6.5.1
中断向量和中断向量表
3
6.5.1 中断向量和中断向量表
8086/8088CPU的中断系统可以处理256种中断。每种中断都有对应 的中断服务程序。中断服务程序的入口地址称为中断向量。256种中断 向量存储在内存中构成一张表,称为中断向量表。 每个中断向量都包括两部分:段基址和偏移地址。因此,存放1个中断 向量需要4个内存单元,256种中断向量共需要1K个内存单元。
4
中断向量表位于内存起始地址00000~003FFH的存储区
内。从地址00000H开始,每4个单元存放一个中断向量,

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语言编写的中断服务子程序中。

第6章 DSP系统初始化及中断..

第6章 DSP系统初始化及中断..
外设向量表用来获取响应某一特定外设事件的特定中断服务子程序sisr240xa中断源优先级和中断向量表中断名称优先级cpu中断和向量地址外围中断向量piv能否被屏蔽外围中断源模块描述resetrsn0000hrspin看门狗来自引脚的复位信号看门狗溢出保留位cpu用于仿真nminmi0024h不可屏蔽中断不可屏蔽中断只能是软件中断pdpintaint10002h0020heva功率驱动保护引脚中断pdpintbevbadcintadc高优先级模式的adc中断xint1外部中断逻辑高优先级模式的外部引脚中断xint2spi高优先级模式的spi中断rxint100006hsci高优先级模式的sci接收中断txint110007hsci高优先级模式的sci发送中断canmbint120040hcan高优先级模式的can邮箱中断canerint13int20004h0041hcan高优先级模式的can错误中断cmp1int140021hevacompare1中断cmp2int150022hevacompare2中断cmp3int160023hevacompare3中断t1pint170027hevatimer1周期中断t1cint180028hevatimer1比较中断t1ufint190029hevatimer1下溢中断t1ofint20002ahevatimer1上溢中断cmp4int210024hevbcompare4中断cmp5int220025hevbcompare5中断cmp6int230026hevbcompare6中断t3pint24002fhevbtimer3周期中断t3cint250030hevbtimer3比较中断t3ufint260031hevbtimer3下溢中断t3ofint270032hevbtimer3上溢中断t2pint28int30006h002bhevatimer2周期中断t2cint29002chevatimer2比较中断t2ufint30002dhevatimer2下溢中断t2ofint31002ehevatimer2上溢中断t4pint320039hevbtimer4周期中断t4cint33003ahevbtimer4比较中断t4ufint34int40008h003bhevbtimer4下溢中断t4ofint35003chevbtimer4上溢中断cap1int360033he

中断向量码和中断类型码

中断向量码和中断类型码

中断向量码和中断类型码1.引言1.1 概述中断向量码和中断类型码是计算机系统中重要的概念和组成部分。

在计算机运行过程中,当发生某些特定事件或条件时,系统需要立即中断当前操作,转而处理这些事件或条件的相应操作。

中断向量码和中断类型码就是用来识别和区分不同中断事件和类型的标识符。

简单来说,中断向量码是一种用于唯一标识各种不同中断事件的编码方式。

它通常是一个整数值,拥有特定的含义和对应的处理程序。

当发生中断事件时,系统会根据中断向量码找到对应的处理程序,从而按照预定义的方式对中断事件进行处理。

而中断类型码则是用于区分不同类型中断的编码方式。

计算机系统中可能存在多种不同类型的中断,如硬件中断、软件中断等。

每种类型的中断都有特定的中断类型码,用于区分和识别不同类型的中断。

通过中断类型码,系统可以准确地判断中断的来源和类型,从而进一步调度相应的处理程序或资源。

中断向量码和中断类型码在计算机系统中起到了至关重要的作用。

它们不仅为系统提供了灵活、快速的中断处理机制,还允许系统针对不同类型的中断事件进行有针对性的处理。

通过合理设计和使用中断向量码和中断类型码,可以提高系统的稳定性、可靠性和响应能力。

在接下来的篇章中,我们将详细介绍中断向量码和中断类型码的定义、作用以及使用方法。

通过深入了解这些概念,读者将能够更好地理解中断处理的机制和原理,并且能够在实际应用中灵活使用和调度中断处理程序。

我们希望通过这篇文章的介绍,读者能够对中断向量码和中断类型码有更深入的认识,并且能够将其应用于自己的实际工作和学习中。

1.2 文章结构本文共分为三个主要部分:引言、正文和结论。

下面将详细介绍每个部分的内容和结构安排。

1. 引言部分将提供本文的背景和目的。

首先,我们将概述中断向量码和中断类型码的基本概念和作用。

然后,我们将介绍本文的结构和各个部分的内容安排。

最后,我们将明确本文的目的,即深入探讨中断向量码和中断类型码对于中断处理的重要性。

DSP系统配置和中断_图文(精)

DSP系统配置和中断_图文(精)

第2章系统配置和中断介绍系统的配置寄存器和有关中断,并介绍用于增加中断请求容量的外设中断扩展(PIE寄存器。

2.1 系统配置概述系统配置和中断操作的内容包括:系统配置寄存器、中断优先级和中断向量表、外设中断扩展控制器(PIE、中断向量、中断响应的流程、中断响应的时间、CPU中断寄存器、外设中断寄存器、复位、无效地址检测、外部中断控制寄存器。

LF2407大部分的I/O口是多路复用的,复位时会被上拉为数字输入的模式。

2.2 系统配置寄存器对功能模块进行配置。

2.2.1 系统控制和状态寄存器(1)系统控制和状态寄存器-SCSR1,映射到数据存储器空间7018h 。

位15:保留位14:CLKSRC,CLKOUT引脚输出源选择0-CLKOUT引脚输出CPU时钟;1-CLKOUT引脚输出WDCLK时钟位13-12:LPM低功耗模式选择,指明在执行IDLE 指令后进入哪一种低功耗模式。

00-进入IDLE1(LPM0)模式;01-进入IDLE2(LPM1)模式;1x -进入HALT (LPM2)模式。

位11-9:PLL时钟预定标选择,对输入时钟选择倍频系数。

000-4;001-2;010-1.33;011-1;100-0.8;101-0.66;110-0.57;111-0.5位8:保留位7:ADC CLKEN,ADC模块时钟使能控制位位6:SCICLKEN, SCI模块时钟使能控制位位5:SPICLKEN, SPI模块时钟使能控制位位4:CANCLKEN, CAN模块时钟使能控制位位3:EVBCLKEN, EVB模块时钟使能控制位位2:EVACLKEN, EVA模块时钟使能控制位0:禁止模块时钟(节能);1:使能模块时钟,且运行位1:保留位0:ILLADR, 无效地址检测位当检测到一个无效地址时,该位被置1,该位需软件清除,写0即可。

初始化时该位写0。

注意:任何无效的地址会导致NMI事件发生。

(2)系统控制和状态寄存器2-SCSR2映射到数据存储器空间7019h 。

DSP(知识点+思考题)

DSP(知识点+思考题)

DSP(知识点+思考题)DSP复习要点第⼀章绪论1、数的定标:Qn表⽰。

例如:16进制数2000H=8192,⽤Q0表⽰16进制数2000H=0.25,⽤Q15表⽰2、?C54x⼩数的表⽰⽅法:采⽤2的补码⼩数;.word 32768 *707/10003、定点算术运算:乘法:解决冗余符号位的办法是在程序中设定状态寄存器STl中的FRCT位为1,让相乘的结果⾃动左移1位。

第⼆章CPU结构和存储器设置⼀、思考题:1、C54x DSP的总线结构有哪些特点?答:TMS320C54x的结构是围绕8组16bit总线建⽴的。

(1)、⼀组程序总线(PB):传送从程序存储器的指令代码和⽴即数。

(2)、三组数据总线(CB,DB和EB):连接各种元器件,(3)、四组地址总线(PAB,CAB,DAB和EAB)传送执⾏指令所需要的地址。

2、C54x DSP的CPU包括哪些单元?答:'C54X 芯⽚的CPU包括:(1)、40bit的算术逻辑单元(2)、累加器A和B(3)、桶形移位寄存器(4)、乘法器/加法器单元(5)、⽐较选择和存储单元(6)、指数编码器(7)、CPU状态和控制寄存器(8)、寻址单元。

1)、累加器A和B分为三部分:保护位、⾼位字、地位字。

保护位保存多余⾼位,防⽌溢出。

2)、桶形移位寄存器:将输⼊数据进⾏0~31bits的左移(正值)和0~15bits的右移(负值)3)、乘法器/加法器单元:能够在⼀个周期内完成⼀次17*17bit的乘法和⼀次40位的加法4)、⽐较选择和存储单元:⽤维⽐特算法设计的进⾏加法/⽐较/选择运算。

5)、CPU状态和控制寄存器:状态寄存器ST0和ST1,由置位指令SSBX和复位指令RSBX控制、处理器模式状态寄存器PMST2-3、简述’C54x DSP的ST1,ST0,PMST的主要功能。

答:’C54x DSP的ST1,ST0,PMST的主要功能是⽤于设置和查看CPU的⼯作状态。

dsp 中断向量表

dsp 中断向量表

中断向量表单片机的程序一般情况下上电之后是从0x0地址开始运行的,而0x0后面是关于硬件的一些对应的中断的入口地址。

所以中断向量表其实就是硬件查表跳转表,相当于C语言的switch 语句。

如:Switch(i){Case 0: goto reset;Case 1: goto int0 ;….}关于I的值就是硬件给出的中断向量。

2406中断向量表:.ref _bad_trap.ref _c_int0.sect "vectors" ;自定义段名_vector: ;向量表地址标识RSVECT B _c_int0 ;C项目初始化入口地址INT1 B _bad_trap ;没有用到的中断跳转到非法中断陷阱INT2 B _bad_trapINT3 B _PM6 ;有用到的中断,则写其实际中断的地址或标号INT4 B _bad_trap ; PM 8 Int level 4 7INT5 B _bad_trap ; PM A Int level 5 8INT6 B _bad_trap ; PM C Int level 6 9……..endPAGE 0 : /* program memory */ VECS: origin = 00000h, length = 0007Fhvectors : > VECS PAGE = 0这样就可以把中断向量表写到正确的地址。

.ref _bad_trap 这个标号外部没有定义,为什么还用.ref,而不是用..global?因为_bad_trap在这里只是声明函数,它实际函数可能是.C文件里的bad_trap()函数。

CPU中断向量地址和外设中断向量PIV有什么不同?什么是外设中断向量PIV?一个CPU中断包括好几个外设中断,如INT1包括了PDPINTA、PDPINTB、ADCINT、XINT1、XINT2、SPIINT、RXINT、TXINT、CANMBINT、CANERINT。

基于C语言设置TMS320DSP中断向量表

基于C语言设置TMS320DSP中断向量表

基于C语言设置TMS320 DSP中断向量表摘要:随着DSP芯片应用的不断深入,用C语言开发DSP芯片,不仅可以使DSP芯片的开发速度大大提高,也使得程序的修改和移植变得十分方便。

C语言设置TMS320系列DSP中断向量表是高级语言开发DSP的一个具体应用。

关键词: C语言,中断,中断向量表,DSP。

Setting TMS320 DSP Interrupt Vectors Table in CAbstract Along with the development of DSP chip, the exploiture of DSP in C not only accelerate the evolution of DSP ,but also make the program easy to modify and transplant. This is a practice application that setting TMS320 DSP interrupt vectors table in C.Key Words C language, Interrupts, Interrupt vector table, DSP.1、引言DSP(数字信号处理器)自二十世纪70年代末80年代初诞生以来,得到了突飞猛进的发展,在信号处理、通讯、雷达等方面应用越来越广泛,而且开发手段和开发设备也越来越多样化。

其中C语言在DSP开发应用中起着越来越重要的作用,以C 语言编写的DSP应用程序具有可读性、可移植性,易于维护和修改。

另外在DSP应用系统中,中断是完成数据传递、实时处理等的重要手段,因而用C语言完成对DSP中断设置是DSP开发的重要内容。

DSP中断的设置主要包括中断服务程序的编写,中断向量表的设置,中断寄存器的初始化等内容。

本文以TI公司TMS320系列DSP为例,说明用C语言设置中断向量表的方法。

并给出实例进行说明。

DSP课设PWM

DSP课设PWM

目录一引言与概述_________________________________________________________ 2 1.1 DSP介绍 _______________________________________________________________ 2 1.2DSP的应用:____________________________________________________________ 2 1.3问题描述_______________________________________________________________ 3 1.4 DSP2407简介 ___________________________________________________________ 3 1.5事件管理器的引脚说明___________________________________________________ 4 1.6比较单元_______________________________________________________________ 4 1.7 PWM基本原理__________________________________________________________ 4二系统总体设计与工作原理_____________________________________________ 6 2.1总体设计与分析_________________________________________________________ 6 2.2基本理论_______________________________________________________________ 7三各单元硬件设计及工作原理__________________________________________ 12四软件设计与说明____________________________________________________ 12 4.1程序文件说明__________________________________________________________ 12 4.2主程序(pwm.c) _________________________________________________________ 13 4.3向量表程序(vectors.asm) _________________________________________________ 14 4.4存储器配置(2407CMD.cmd) ______________________________________________ 14五调试结果及其操作说明______________________________________________ 15 5.1 CCS 集成开发环境_____________________________________________________ 15 5.2 CCS 的调试操作_______________________________________________________ 15六参考文献__________________________________________________________ 16一引言与概述1.1 DSP介绍数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

软硬中断以及中断向量表

软硬中断以及中断向量表

软硬中断以及中断向量表概述中断(英语:Interrupt)是指处理器接收到来⾃硬件或软件的信号,提⽰发⽣了某个事件,应该被处理器注意,这种情况就称为中断。

通常,在接收到来⾃外围硬件(相对于中央处理器和内存)的异步信号,或来⾃软件的同步信号之后,处理器将会进⾏相应的硬件/软件处理。

发出这样的信号称为进⾏中断请求(interrupt request,IRQ)。

硬件中断导致处理器通过⼀个运⾏信息切换(context switch,也叫上下⽂切换)来保存执⾏状态(以程序计数器和程序状态字等寄存器信息为主);软件中断则通常作为CPU指令集中的⼀个指令,以可编程的⽅式直接指⽰这种运⾏信息切换,并将处理导向⼀段中断处理代码。

中断在计算机多任务处理,尤其是即时系统中尤为有⽤。

这样的系统,包括运⾏于其上的操作系统,也被称为“中断驱动的”(interrupt-driven)。

中断是⽤以提⾼计算机⼯作效率、增强计算机功能的⼀项重要技术。

最初引⼊硬件中断,只是出于性能上的考量。

如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进⾏忙等待(Busy waiting),反复轮询该设备是否完成了动作并返回结果。

这就造成了⼤量处理器周期被浪费。

引⼊中断以后,当处理器发出设备请求后就可以⽴即返回以处理其他任务,⽽当设备完成动作后,发送中断信号给处理器,后者就可以再回过头获取处理结果。

这样,在设备进⾏处理的周期内,处理器可以执⾏其他⼀些有意义的⼯作,⽽只付出⼀些很⼩的切换所引发的时间代价。

后来被⽤于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个⽅⾯,并产⽣通过软件⽅式进⼊中断处理(软中断)的概念。

在硬件实现上,中断可以是⼀个包含控制线路的独⽴系统,也可以被集成进存储器⼦系统中。

对于前者,在IBM个⼈机上,⼴泛使⽤(Programmable Interrupt Controller,PIC)来负责中断响应和处理。

DSP 第3讲 中断系统

DSP 第3讲 中断系统
软件中断#27 软件中断#28 软件中断#29 软件中断#30
§3.11 中断和中断向量表
中断号(K) 优先级 名 称 向量位置 功 能
16
17 18 19 20 21 22
3
4 5 6 7 8 9
INT0/SINT0
INT1/SINT1 IN12/SINT2 TINT0/SINT3 BRINT0/SINT4 BXINT0/SINT5 DMAC0/SINT6
§3.12 VC5402的中断向量表文件—续
RESET: ;复位中断,优先级最高 BD _c_int00 ;执行完该语句下面的一条语句后,跳转到_c_int00处 STM #128,SP ;设置堆栈大小为128个字 nmi:RETE ;nmi非屏蔽中断返回,下面依次为VC5402的各个中断, NOP ;每个只占4个字节 NOP NOP sint17 .space 4*16 ;VC5402的软中断 sint18 .space 4*16 ;.space表示开辟空间(单位:bit) sint19 .space 4*16 sint20 .space 4*16 sire21 .space 4*16 sint22 .space 4*16 sint23 .space 4*16 sint24 .space 4*16 sint25 .space 4*16 sint26 .space 4*16 sint27 .space 4*16 sint28 .space 4*16 sint29 .space 4*16 sint30 .space 4*16 ;这部分可以直接写为 .space 14*4*16
(3)IMR屏蔽位为1。(使能一个中断)
§3.6 执行中断服务程序(ISR)

当应答中断后,CPU会采取如下的操作:

DSP综合报告

DSP综合报告

不同型号的DSP性能分析报告一、简介数字信号处理(Digital Signal Processing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。

20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。

数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。

在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。

DSP(digital signal processor)是一种独特的微处理器,是以数字信号来处理大量信息的器件。

其工作原理是接收模拟信号,转换为0或1的数字信号。

再对数字信号进行修改、删除、强化,并在其他系统芯片中把数字数据解译回模拟数据或实际环境格式。

它不仅具有可编程性,而且其实时运行速度可达每秒数以千万条复杂指令程序,远远超过通用微处理器,是数字化电子世界中日益重要的电脑芯片。

它的强大数据处理能力和高运行速度,是最值得称道的两大特色。

目前,德州仪器(TI)、飞思卡尔(Freescale)半导体公司、美国模拟器件公司(ADI)是全球三大DSP芯片生产商。

因为不同公司的DSP各有其自身特点,所以就以上公司的某一种型号的DSP芯片进行其性能参数及结构特点等分析。

二、性能分析1、TI公司的TMS320F2812的主要性能(1)高性能静态CMOS(Static CMOS)技术·150MHz(时钟周期6.67ns);·低功耗(核心电压1.8V,I/O口电压3.3V);·Flash编程电压3.3V;(2)JTAG边界扫描(Boundary Scan)支持(3)高性能的32位中央处理器·16位×16位和32位×32位乘且累加操作;·16位×16位的两个乘且累加;·哈佛总线结构;·强大的操作能力;·快速的中断响应和处理;·统一的寄存器编程模式;·可达4兆字的线性程序地址;·可达4兆字的数据地址;·代码高效(用C/C++或汇编语言);(4)片内存储器·128K×16位的Flash存储器;·1K×16位的OTP型只读存储器;·L0和L1:两块4K×16位的单口随机存储器(SARAM);·H0:一块8K×16位的单口随机存储器;·M0和M1:两块1K×16位的单口随机存储器;(5)引导存储器(Boot ROM)4K×16位·带有软件的Boot模式;·标准数学表;(6)外部存储器接口·最多1MB的存储器;·可编程等待状态数;·可编程读/写选通计数器;·三个独立的片选;(7)时钟与系统控制·支持动态的改变锁相环的频率;·片内振荡器;·看门口定时器模块;(8)三个外部中断(9)外部中断扩展(PIE)模块。

DSP芯片的中断系统

DSP芯片的中断系统

TMS320C2000、TMS320C5000、TMS320C6000DSP的中断系统的比较以及TMS320C54x在中断编程中的注意事项姓名:刘帅民学号:201120195005 专业:通信与信息系统摘要:本文中主要针对TI公司生产的TMS320C2000系列、TMS320C5000系列和TMS320C6000系列DSP的中断系统进行简要概述,最后又简要叙述了编写TMS320C54x DSP芯片的中断程序应该注意的事项。

Abstract:The article focused on the briefly discusses of TI’s TMS320C2000 Series,TMS320C5000 Series and TMS320C6000 Series DSP’s interrupt system,finally a brief description should be payed attention to when write the interrupt program of the TMS320C54x DSP chip .一、中断的概述中断是指使CPU 暂停执行当前程序而转去执行中断子程序(ISR)的过程。

中断分为两类:(1)可屏蔽中断(可通过软件禁止);(2)不可屏蔽中断(不能被软件禁止)。

CPU一般通过以下四个步骤处理中断:(1)检测到中断请求信号;(2)允许中断:对于可屏蔽中断来说需要满足一定的条件,对于不可屏蔽中断则立即响应;(3)保护现场(自动将寄存器STO,T,AI ,AH,PI ,PH,ARO,AR1,DP,ST1,DBGSTAT,PC,IER压栈保存),读取中断向量并将它赋给程序指针PC。

(4)转入执行中断服务子程序(ISR)。

三大系列DSP芯片的结构不同,实现的功能也不同,所以,三者的中断系统也不同。

下面对三者的中断系统做一个简单的比较。

二、三大系列DSP芯片的中断系统比较1、TMS320C2000的中断系统C2000系列DSP中断可由硬件(中断引脚、外部设备、片内外设)或软件(INTR、IFR指令或TRAP指令)触发。

中断向量表——精选推荐

中断向量表——精选推荐

中断向量表中断向量地址⼀览表⼀、8088中断向量0-3 4-7 8-B C-F 10-13 14-17 18-1F123456,7除以零单步(⽤于DEBUG)⾮屏蔽中断断点指令溢出打印屏幕保留⼆、8259中断向量20-23 24-27 28-2B 2C-2F 30-33 34-37 38-3B 3C-3F 89ABCDEF定时器键盘彩⾊/图形异步通讯(secondary)异步通讯(primary)硬磁盘软磁盘并⾏打印机三、BIOS中断40-43 44-47 48-4B 4C-4F 50-53 54-57 58-5B 5C-5F 60-63 64-67 68-6B 101112131415161718191A屏幕显⽰设备检验测定存储器容量磁盘I/O串⾏通讯⼝I/O盒式磁带I/O键盘输⼊打印机输出BASIC⼊⼝代码引导装⼊程序⽇时钟四、提供给⽤户的中断6C-6F 70-731B1CCtrl-Break控制的软中断定时器控制的软中断五、数据表指针74-77 78-7B 7C-7F 1D1E1F显⽰器参量表软盘参数表图形表六、中断80-83 84-87 88-8B 8C-8F 20212223程序结束系统功能调⽤结束退出Ctrl-Break退出90-93 94-97 98-9B 9C-9F A0-BB BC-BF C0-FF2425262728-2E2F30-3F严重错误处理绝对磁盘读功能绝对磁盘写驻留退出DOS保留打印机DOS保留七、BASIC中断100-17F 180-19F 1A0-1FF 200-217 218-3C3 3C4-3FF 40-5F60-6768-7F80-8586-F0F1-FF保留⽤户软中断保留由BASIC保留BASIC中断保留DOS功能调⽤* AH=0-2E适⽤DOS1.0以上版本;*AH=2F-57适⽤DOS2.0以上版本;*AH=58-62适⽤DOS3.0以上版本.BIOS中断INT AH功能调⽤参数返回参数100设置显⽰⽅式AL=00 40*25⿊⽩⽅式=01 40*25彩⾊⽅式=02 80*25⿊⽩⽅式=03 80*25彩⾊⽅式=04 320*200彩⾊图形⽅式=05 320*200⿊⽩图形⽅式=06 640*200⿊⽩图形⽅式=07 80*25单⾊⽂本⽅式=08 160*200 16⾊图形=09 320*200 16⾊图形=0A 640*200 16⾊图形=0B 保留(EGA)=0C 保留(EGA)=0D 320*200彩⾊图形(EGA)=0E 640*200彩⾊图形(EGA)=0F 640*350⿊⽩图形(EGA)=10 640*350彩⾊图形(EGA)=11 640*480单⾊图形(EGA)=12 640*480 16⾊图形(EGA)=13 320*200 256⾊图形(EGA)=40 80*30彩⾊⽂本(CGE400)=41 80*50彩⾊⽂本(CGE400)=42 640*400彩⾊⽂本(CGE400)101置光标类型(CH)0-3=光标起始⾏(CL)0-3=光标结束⾏102置光标位置BH=页号,DH,DL=⾏,列103读光标位置BH=页号CH=光标起始⾏,DH,DL=⾏,列104读光笔位置AH=0光笔未触发,=1光笔触发CH=象素⾏, BX=象素列,DH=字符⾏,DL=字符列105置显⽰页AL=页号106屏幕初始化或上卷AL=上卷⾏数,AL=0整个窗⼝空⽩BH=卷⼊⾏属性,CH=左上⾓⾏号,CL=左上⾓列号,CH=右下⾓⾏号,DL=右下⾓列号107屏幕初始化或下卷AL=下卷⾏数,AL=0整个窗⼝空⽩BH=卷⼊⾏属性,CH=左上⾓⾏号,CL=左上⾓列号,DH=右下⾓⾏号,DL=右下⾓列号108读光标位置的字符和属性BH=显⽰页AH=属性,AL=字符109在光标位置显⽰字符及其属性BH=显⽰页,AL=字符,BL=属性CX=字符重复次数10A在光标位置显⽰字符BH=显⽰页,AL=字符CX=字符重复次数10B置彩⾊调板(320*200图形)BH=彩⾊调板IDBL=和ID配套使⽤的颜⾊10C写象素DX=⾏(0-199) CX=列(0-639)AL=象素值10D读象素DX=⾏(0-199) CX=列(0-639)AL=象素值10E显⽰字符(光标前移)AL=字符,BL=前景⾊10F取当前显⽰⽅式AH=字符列数,AL=显⽰⽅式1013显⽰字符串(适⽤AT)ES:BP=串地址,CX=串长度DH,DL=起始⾏,列,BH=页号AL=0,BL=属性串:char,char...AL=1,BL=属性串:char,char...AL=2 光标返回起始位置 光标跟随移动光标返回起始位置AL=2串:char,attr,char, attr,... AL=3串:char,attr,char,attr,...光标返回起始位置 光标跟随移动11设备检验AX=返回值bit0=1,配有磁盘bit1=1,80287协处理器bit4,5=01,40*25BW(彩⾊板)=10,80*25BW(彩⾊板)=11,80*25BW(⿊⽩板)bit6,7=软盘驱动器号bit9,10,11= RS-232板号bit12=游戏适配器bit13=串⾏打印机bit14,15=打印机号12测定存储器容量AX=字节数(KB)130软盘系统复位131读软盘状态AL=状态字节132读磁盘AL=扇区数CH,CL=磁道号,扇区号DH,DL=磁头号,驱动器号ES:BX=数据缓冲区地址读成功:AH=0AL=读取的扇区数读失败:AH=出错代码133写磁盘同上写成功:AH=0 AL=写⼊的扇区数写失败: AH=出错代码134检验磁盘扇区同上(ES:BX不设置)成功:AH=0 AL=检验的扇区数失败:AH=出错代码135格式化盘磁道ES:BX=磁道地址成功:AH=0 失败:AH=出错代码140初始化串⾏通讯⼝AL= 初始化参数DX=通讯⼝号(0,1)AH = 通讯⼝状态AL = 调制解调器状态141向串⾏通讯⼝写字符AL=字符,DX=通讯⼝号(0,1)写成功:(AH)7=0写失败:(AH)7=1(AH)0-5=通讯⼝状态142从串⾏通讯⼝读字符DX=通讯⼝号(0,1)读成功:(AH)7=0,(AL)=字符读失败:(AH)7=1,(AH)0-6=通讯⼝状态143取通讯⼝状态DX=通讯⼝号(0,1)AH=通讯⼝状态AL=调制解调器状态150启动盒式磁带马达151停⽌盒式磁带马达152磁带分块读ES:BX=数据转输区地址AH=状态字节CX=字节数AH=00读成功,=01冗余检验错=02⽆数据传输,=04⽆引导,=80⾮法命令AH=状态字节(同上)153磁带分块写DS:BX=数据传输区地址CX=字节数160从键盘读字符AL=字符码,AH=扫描码161读键盘缓冲区字符ZF=0 AL=字符码,AH=扫描码ZF=1 缓冲区空162取键盘状态字节AL=键盘状态字节170打印字符,回送状态字节AL=字符,DX=打印机号AH=打印机状态字节DX=打印机号AH=打印机状态字节171初始化打印机,回送状态字节172取状态字节DX=打印机号AH=打印机状态字节1A0读时钟CH:CL=时:分DH:DL=秒:1/100秒1A1置时钟CH:CL=时:分,DH:DL=秒:1/100秒1A2读实时钟CH:CL=时:分(BCD)DH:DL=秒:1/100秒(BCD)1A6置报警时间CH:CL=时:分(BCD)DH:DL=秒:1/100秒(BCD)1A7清除报警。

我的DSP之路-关于中断(附中断向量表)

我的DSP之路-关于中断(附中断向量表)

我的DSP之路-关于中断(附中断向量表)2008-3-8中断标志寄存器IFR,由CPU内核控制,一旦中断被响应,IFR会被CPU自动清除(除INTR指令引起的中断外),不需要人工干预。

IFR中断标志寄存器只有INT1~INT6,那上面说的是用INTR引起外部中断,那时就需要人工干预了?引起的中断如何执行?无法观察到IFR的变化,其一直为0,可能是有置1,只是中断响应又把它清0了。

那上述所说的除外情况是怎样的情况呢。

用INTR进外部中断时,不可屏蔽,即IMR对其无影响。

IMR只是屏蔽对外部中断源的响应。

CMD文件里可以用/* */来注释,其它的汇编的文件,如.ASM、.H文件就只能用;来注释。

外部中断XINT1、XINT2。

外部中断输入引脚必须至少被拉低或拉高5或11个CLKOUT 时钟周期才被认为是有效的中断请求输入,这由SCSR2中的I/O QUAL位决定。

每一个外设中断都有三个屏蔽位:INTM、INTn、各自的屏蔽位。

两个中断请求标志位:IFR、PIRQR0~2、各自的中断请求标志位。

2008-3-10中断被响应后,CUP级IFR中相应中断标志位自动清零,外部中断的XINT1/2的外设级中断标志位也会自动被清零;但片内外设(包括事件管理中断和系统模块中断)中断被响应后不会自动清0,需要用户对其进行写1清0。

通过INTR指令来请求中断时,CPU不会清除IFR中的位。

但仿真时观察IFR值一直为0?通过INTR指令来请求外设中断时,不会装PIVR外设中断向量,PIVR默认的0000装入。

INTM在硬件中断被响应时自动置1,因此在中断服务程序返回时一定要重新开中断。

如果要实现中断嵌套,可以在中断服务程序中开放中断。

查看是否有可屏蔽中断发出请求,应看其标志位而不是PIRQR0~2。

中断有两个中断向量:CPU中断向量(即0~40H地址的向量表)和外设中断向量PIV。

参考:中断向量表(文档)。

中断向量表——精选推荐

中断向量表——精选推荐

中断向量表中断向量表是DSP程序的重要组成部分,当有中断发生并且处于允许状态时,程序指针跳转到中断向量表中对应的中断地址。

由于中断服务程序一般较长,通常中断向量表存放的是一个跳转指令,指向实际的中断服务程序。

下面是5402中断向量表的一个范例,可以作为模板,使用时稍作修改就行:******************************************************************5402V ectors.asm*完整的5402中断向量表示例*5402共有30个中断向量,每个向量占4个字的空间。

*使用向量一般用一条跳转指令转到相应中断服务子程序,其余空位用NOP填充*未使用的向量直接用RETE返回,是为了防止意外进入未用中断。

***************************************************************** .sect ".vectors" ;开始命名段.vecotrs.global CodeStart ;引用程序入口的全局符号定义…;引用其它中断程序入口的全局符号定义.align 0x80 ;中断向量表必须对齐128字的页边界RESET: B CodeStart; Reset中断向量,跳转到程序入口NOP ;用NOP填充表中其余空字NOP ;B指令占了两个字,所以要填两个NOPNMI: RETE ;不可屏蔽中断NOPNOPNOP; 软件中断SINT17 .space 4*16 ;软件中断使用较少,简单起见用0填充SINT18 .space 4*16SINT19 .space 4*16SINT20 .space 4*16SINT21 .space 4*16SINT22 .space 4*16SINT23 .space 4*16SINT24 .space 4*16SINT25 .space 4*16SINT26 .space 4*16SINT27 .space 4*16SINT28 .space 4*16SINT29 .space 4*16SINT30 .space 4*16INT0: RETE ;外部中断INT0NOPNOPNOPINT1: RETE ;外部中断INT1NOPNOPNOPINT2: RETE ;外部中断INT2NOPNOPNOPTINT: RETE ;Timer0中断NOPNOPNOPBRINT0: RETE ;McBSP #0 接收中断NOPNOPNOPBXINT0: RETE ;McBSP #0 发送中断NOPNOPNOPDMAC0: RETE ;无定义(默认)DMA0中断NOPNOPNOPTINT1: RETE ;Timer1中断(默认)或DMA1中断. NOPNOPNOPINT3: RETE ;外部中断3NOPNOPNOPHPINT: RETE ;HPI中断NOPNOPNOPBRINT1: RETE ;McBSP #1接收中断(默认)或DMA2中断NOPNOPNOPBXINT1: RETE ;McBSP #1发送中断(默认)或DMA3中断NOPNOPNOPDMAC4: RETE ;DMA4中断NOPNOPNOPDMAC5: RETE ;DMA5中断NOPNOPNOP.end在本实验中只要把在开头加上中断子程序标号的引用,并在中断表的TINT部分换成跳转指令就行了:*vectors.asm for 方波发生.sect ".vectors" ;开始命名段.vecotrs.global CodeStart ;引用程序入口的全局符号定义.global TINT0_ISR ;引用Timer0中断子程序<节省篇幅,中间省略>TINT: B TINT0_ISR ;Timer0中断NOPNOPBRINT0: RETE ;McBSP #0 receive interrupt<节省篇幅,下略>技巧提示:只有第一个中断(Reset中断)是每个程序都应该有的,在不需要其它中断的情况下,可以只用这一部分,后面可以省略。

什么是中断?什么是中断向量?中断向量表的地址范围?

什么是中断?什么是中断向量?中断向量表的地址范围?

1.什么是中断?什么是中断向量?中断向量表的地址范围?答:中断就是CPU在执行当前程序时由于内外部事件引起CPU暂时停止当前正在执行的程序而转向执行请求CPU暂时停止的内外部事件的服务程序,该程序处理完后又返回继续执行被停止的程序;中断向量是中断处理子程序的入口地址;地址范围是00000H-003FFH。

2.3.微机系统的硬件由哪几部分组成?答:微型计算机(微处理器,存储器,I/0接口,系统总线),外围设备,电源。

4.什么是微机的总线,分为哪三组?答:是传递信息的一组公用导线。

分三组:地址总线,数据总线,控制总线。

5.8086/8088CPU的内部结构分为哪两大模块,各自的主要功能是什么?答:总线接口部件(BIU)功能:根据执行单元EU的请求完成CPU与存储器或IO 设备之间的数据传送。

执行部件(EU),作用:从指令对列中取出指令,对指令进行译码,发出相应的传送数据或算术的控制信号接受由总线接口部件传送来的数据或把数据传送到总线接口部件进行算术运算。

6.8086指令队列的作用是什么?答:作用是:在执行指令的同时从内存中取了一条指令或下几条指令,取来的指令放在指令队列中这样它就不需要象以往的计算机那样让CPU轮番进行取指和执行的工作,从而提高CPU的利用率。

7.8086的存储器空间最大可以为多少?怎样用16位寄存器实现对20位地址的寻址?完成逻辑地址到物理地址转换的部件是什么?答:8086的存储器空间最大可以为2^20(1MB);8086计算机引入了分段管理机制,当CPU寻址某个存储单元时,先将段寄存器内的内容左移4位,然后加上指令中提供的16位偏移地址形成20位物理地址。

8.段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?答:指令的物理地址为21F00H;CS值和IP值不是唯一的,例如:CS=2100H,IP=0F00H。

DSP中断设置简明教程(精)

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到工程路径下。

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

DSP中断向量表和中断子向量表
DSP中断向量表和中断子向量表
类别:单片机/DSP
本案例在介绍数字PID控制器和模糊Pl控制器的DSP应用程序设计的同时,还介绍TI公司C2000系列DSP芯片开发时,中断向量表和中断子向量表的编写和配置方法。

一个实用DSP程序除包括主程序和系统初始化程序以及存储器配置文件之外,还需要有中断向量表和中断子向量表程序,对于一个DSP控制器来说,中断的使用和管理是不可缺少的。

在系统中,控制器的作用就是控制整个系统实时、有序地按照程序的要求运行,而DSP只有一个CPU,所以只有L个进程,当外部设各要求DSP控制时,就采用中断的方式,DSP根据中断的优先级,通过响应中断并执行中断服务子程序(ISR)来对外部设各进行控制。

一个正确的中断向量表和中断子向量表程序能够使系统正常运行,并能保证在系统不正常时自动恢复到程序初始化的状态,防止系统崩溃,提高工业控制的鲁棒性。

DSP LF2407有两级中断,第一级中断是CPU中断,共6个;第二级中断是外围设各中断,共46个。

由外设中断扩展控制器(PIE)和中断子向量表把外围设备中断映射到CPU中断,然后等待CPU的响应。

此外CPU中断向量表还包括19个软件中断和硬件复位中断(Reset)以及一个不可屏蔽申断(NMI)。

这种两级中断是采用集中化的中断扩展设计方法,特别适合有大量外设中断的工业控制系统。

以下就是采用通用定时器GPTI的比较操作来产生中断时,LF2407的中断向量表和申断子向量表程序。

当需要采用其他中断时,可以直接在此程序中根据需要修改。

该程序对LF2407来说是通用的,只是发生中断时,CPU要跳转的地址不一样而已。

对于一个实际的DSP系统来说,系统的中断管理是不可缺少的,因为目前任何DSP实时系统都具有中断,中断是DSP系统和外部世界发生实时联系的一个重要手段。

作为TI公司的C2000系列DSP,它是偏向于控制的DSP 芯片,因此它的中断管理更丰富和先进,读者理解起来也较困难。

LF2407支持6个一级可屏蔽中断,采用集中化的中断扩展设计来满足大量的外设中断请求,所以每一级中断又有多个中断源,例如一级中断INT2包含的中断源有比较器1、2、3、4、5、6中断,定时器1、3的周期、比较、下溢、上溢中断等。

为了正确地响应外设中断,应该分两步来完成中断服务子程序。

在本案例的程序中,采用通用定时器1的比较匹配中断,当CPU响应该中断时,首先转移到一级中断INT2中,也即GISR2处执行,在一级中断INT2中读取外设中断向量寄存器(PIVR)的值,它是个偏移量,再加上中断子向量的首地址,程序就可以转移到二级中断子向量T1CINT_ISR(定时器1比较中断)子程序中,执行相应的操作后即完成了一次中断调用。

LF2407通过外设中断扩展控制器(PIE)来实现集中化的中断扩展管理,这可以实现在占用极少资源的情况下,大大扩展可用的中断源。

因此在实际的DSP程序中,中断向量表和中断子向量表程序是不可缺少的,读者在自行编写程序时一定要在主程序中用。

include 汇编伪指令把本实例介绍的向量表文件PID_generate_vec.asm包括进来。

另外,假中断向量是LF2407的一个特有的概念,它是保持中断系统完整性的一个特性。

在向量表文件PID generate_voc.asm中可以发现,中断子向量表的地址是从00h到42h,而中断源却没有那么多,并且其入口地址叉是固定的,所以在中断子向量表的没有中断源的地方就要插人假中断向量以保证中断系统的完整性。

当一个中断已经被响应,但却没有外设将中断向量的地址偏移量装入中断向量寄存器(PIVR)中时,假中断向量的地址就被装人PIVR中,这种缺省保证了系统按照可以控制的方式进行处理。

假中断向量的子程序如下所示,一股都是复位看门狗电路。

欢迎转载,信息来源ic37网
()。

相关文档
最新文档