TMS320C54XX系列DSP中断系统的编程

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

TMS320C54XX系列DSP中断系统的编程
倪雨;孙璐
【摘要】以DSP定时器产生方波为例,详细分析了编写一个完整的中断服务程序需要涉及的几个关键问题,并对每一个关键技术进行分析,总结了编写要领.研究结果有助于提高教学效果,帮助DSP初学者快速入门,迅速掌握DSP中断服务程序的编程要领,进行DSP应用系统的开发.%In order to provide a simple and direct programming guide of DSP interrupt system for DSP beginners,this paper took a DSP-timer producing a square wave as example to labor several key issues of designing a complete interrupt service program,and each of the key techniques were analyzed,the programming essentials are summarized.This paper's results will be able to improve the teaching effect,help DSP beginners get started quickly,and grasp the programming essentials of the DSP interrupt service program,carry out the development of DSP application systems.
【期刊名称】《电焊机》
【年(卷),期】2011(041)004
【总页数】4页(P61-64)
【关键词】DSP定时器;中断系统;中断向量表;中断服务程序;连接命令程序
【作者】倪雨;孙璐
【作者单位】成都信息工程学院,控制工程学院,四川,成都,610031;四川托普信息技术职业学院,计算机系,四川,成都,611743
【正文语种】中文
【中图分类】TG409
近年来,随着DSP处理器性价比的提高,已被广泛应用于各种设备和工具中[1-2],DSP应用系统的开发成为一个热门的技术行业,而中断系统的编程实现是DSP应用系统设计的重点和难点[3-5]。

中断处理是一个DSP应用系统最重要的组成部分,中断处理能力直接决定着整个
系统的处理性能[6-8]。

中断系统的开发包括中断向量表程序、中断服务程序和内存配置程序的编写,将三者有机地结合才能够实现一个中断系统的成功运行,初学者通常很难掌握三者的相互关系[9]。

在此以TI公司TMS320 C54XX系列的DSP 芯片为平台[10],以一个定时器产生方波为例,详细介绍一个产生方波的定时中断系统的开发过程。

中断是由软件或硬件驱动的信号,它使DSP暂停正在执行的程序转而执行中断服
务程序。

软件中断是由一条指令产生的中断,包括INTR、NMI、TRAP和RESET;硬件中断可由DSP的片内外设产生(如定时器),或者DSP的外部硬件产生(如
A/D转换器)。

C54XX按照非屏蔽和屏蔽两种方式管理中断:非屏蔽中断被无条件响应,包括软件中断和两个外部硬件中断(RS和NMI);可屏蔽中断由INTM和IMR使能或屏蔽,只有当INTM=0和IMR对应位为1时,相应可屏蔽中断才被
开启。

需要特别注意的是,RS和NMI也可以采用软件方式触发,但不影响IPTR 值,只有硬件触发才影响IPTR值,使IPTR=1FFH。

C54系列的中断向量表占用连续128 B空间,每个中断向量占用连续4 B空间,
因此每个中断向量的地址构成方式为:PC=(IPTR)<<7+(Vector[n])<<2,Vector[n]为中断向量号,取值于区间[0 31]的整数。

中断向量表总是以汇编的形
式出现。

当DSP接收到一个中断时(接收中断请求),如果是软件中断或者可屏蔽中断已开(中断确认),将暂停正在执行的程序转而运行中断向量程序,即在中断向量表中查找中断服务程序的入口地址,查到后便进入中断服务程序的运行(执行中断服务程序),运行完成后再回到主程序中继续先前的程序运行。

因此,中断程序的编写便包括三个方面:中断产生和开启;中断服务程序;中断向量程序。

其中,最关键的问题是中断向量表程序的编写和内存定位。

当硬件复位时,IPTR=1FFH,表示中断向量表就放在以0FF80H(默认)为起始地址的连续128 B空间,DSP可从中断向量表进入并执行复位中断服务程序,即进入项目主程序。

可见,DSP将Reset作为一个中断,从而完成了主程序的启动(或重新启动)。

在主程序中修改IPTR值可以重新映射中断向量表,主程序运行之后便将中断向量表放至方便查找的位置。

中断向量表的内容由中断向量构成,每一个中断向量存放着与之对应的中断服务程序的入口地址。

要求:采用定时器中断产生一个方波。

该中断系统的设计包括:中断服务程序;中断向量表;主程序;内存配置程序。

在定时器中断服务程序的开始处使用标号,该标号可以看作是该中断服务程序的名字,即“_TINT0_ISR”。

中断向量表的建立主要涉及几个关键技术:
(1)引用中断服务程序标号,如“.ref_TINT0_ISR”。

(2)引用其他在中断向量程序中使用的程序标号,如“.ref _c_int00”“.ref __ret”。

(3)在中断服务程序开始处定义一个中断服务程序标号,并定义为一个变量,如“.global vector”。

用于主程序修改IPTR(中断向量指针寄存器)的值,指向中断向量表的新位置,实现中断向量表的重新定位。

从而可得中断向量表程序。

中断向量表有两种内存定位方案:
(1)在中断向量程序中使用伪指令“.align 0x80”,CCS自动将中断向量表分配至整页,但程序员不清楚中断向量表的具体地址。

(2)在中断向量程序开始处,将中断向量表定义为已命名段,如“.sect‘.int_vector’”;然后,在配置文件中将该已命名段放至指定地址(二进制的低7位必须为零),程序员清楚中断向量表的具体地址。

本研究给出第二种内存定位程序如下:
主程序的编写包括多项关键技术:
(1)首先定义中断服务程序的标号为全局变量,以备中断服务程序使用,如“.def _TINT0_ISR”。

(2)定义中断服务程序中用到的标号或变量。

如“.def _c_int00”“.def __ret”。

(3)修改IPTR值,使其指向中断服务程序的入口地址处。

(4)屏蔽所有中断,设置相关中断,然后使能相关中断,开启全局中断。

据此编写的主程序如下:
从应用角度分析了C54系列的中断系统的运行机制,指出构造中断系统的几个关键技术,据此提出了设计一个中断系统的简便方法。

通过一个定时器产生方波的例子,说明了设计一个中断系统的过程,为教师课堂教学和初学者学习和掌握中断系统的设计方法提供一个有益的参考。

【相关文献】
[1]汪安明,陈明欣,朱明.TMS320C54xx DSP实用技术[M].北京:清华大学出版社,2007.
[2]戴明桢,周建江.TMS320C54x DSP结构、原理及应用(第2版)[M].北京:北京航空航天大学出版社,2007.
[3]朱继红,于东海,邹采荣.中断在TMS320C54x系列DSP中的应用[J].电子技术应用,2004(2):74-76.
[4]TMS32c54x DSPreferencesetvolume1:CPUand Peripherals[M].USA:Texas Instruments,2001.
[5]邱小凤,范启富.DSP中断控制器的实现[J].电脑知识与技术,2005(8):76-79.
[6]陈丽安.TMS320C5402 DSP中断资源及其应用[J].鹭江职业大学学报,2004,12(2):61-66.
[7]杨辉,秦品健.浅谈TMS320C6000中断程序的实现方法[J].信息技术,2002(9):36-37,40.
[8]陈朋安,魏宏伟.C54x DSP混合编程及中断的C语言实现[J].微处理机,2005(3):52-56.
[9]许新任,陈进.高性能DSP中断处理技术[J].计算机工程,2004,30(19):176-178.
[10]吴惠民.C语宫中设置TMS320系列DSP中断向表[EB/OL].Http:/.。

相关文档
最新文档