dsp中断设置简明教程new

dsp中断设置简明教程new

ID:15664213

大小:41.50 KB

页数:9页

时间:2018-08-04

dsp中断设置简明教程new_第1页
dsp中断设置简明教程new_第2页
dsp中断设置简明教程new_第3页
dsp中断设置简明教程new_第4页
dsp中断设置简明教程new_第5页
资源描述:

《dsp中断设置简明教程new》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、一、 简述本文介绍TMS320C6000系列中断设置的简明方法。通过示例定时器中断,MCBSP串口接收中断及外部中断这三种中断实现过程,介绍如何实现中断各个寄存器的配置,中断向量表书写以及中断服务函数。最后提供一个简要的示例程序可供大家下载使用。此示例在DSK6416的TI官方实验板上通过测试。由于定时器和串口工作模式较繁,因此对中断无关部分不做介绍。二、 实现DSP中断需要做哪些通用工作设置允许哪些非屏蔽中断设置各个允许的非屏蔽中断的中断来源设置开启总中断设计中断向量表将中断向量表通过cmd文

2、件挂载到指令内存提供中断处理函数如果中断向量表首地址挂载的不是0地址,那么需要设置中断向量表地址寄存器对于不同的中断源,需要做各个自己的工作,比如如果是外部中断,那么需要设置管脚极性,即由高->低产生中断抑或反之。为了照顾知识较少的读者,下面将从一个新工程出发,引导大家建立一个中断示例程序。如果您对建立工程很熟悉,可以跳过此步。三、 建立新工程1.点击Project->New,设置ProjectName为intexample,ProjectType为Executable,Target选择您需要的

3、器件,在此由于本人使用的是DSK6416评估板。因此选择TMS320C64XX。2.添加标准库rts6400.lib,以便自动产生c_int00等函数。右击当前工程,选择“AddFilestoProject”,选择库所在路径,一般为CCS安装自带,可参考本CCS3.1版本的路径地址:CCStudio_v3.1C6000cgtoolslibrts6400.lib如果您使用的是其他器件类型,请在lib文件夹内选择其他器件库。添加源文件,选择File->New->SourceFile,保存为

4、main.c到工程路径下。在此文件内书写主函数。voidmain(void){ while(1);}最后通过如2步骤添加此文件到工程。3.添加寄存器别名定义头文件。在本示例中,对需要用到的寄存器定义别名后,构成global.h文件,内容在后文逐步介绍。在此可以建立一个空文件,并在main.c中包括它。#include"global.h"到此,一个DSP的新工程框架制作完毕。4.添加cmd链接文件 为了实现链接时内存配置,我们需要提供一个cmd文件,为了方便,可以从官方的示例程序中拷贝一份,再加以

5、修改。 在安装目录下D:CCStudio_v3.1tutorial器件类型hello1示例下,会找到一个hello1.cmd, 将其拷贝到本工程目录下,并将其改名为link.cmd,最后将其添加到工程中。 由于此文件没有声明stack和heap,会产生警告,如果动态数据较多也容易溢出。因此我们最好在此文件提供stack和heap的大小,其值可根据实际情况调整,修改后,此文件内容类似为:-stack0x1000-heap0x1000MEMORY{  ISRAM      :origin=0

6、x0,        len=0x1000000}SECTIONS{       .vectors>ISRAM       .text   >ISRAM       .bss    >ISRAM       .cinit  >ISRAM       .const  >ISRAM       .far    >ISRAM       .stack  >ISRAM       .cio    >ISRAM       .sysmem >ISRAM}至此,工程建立完毕,可以编译一遍,观察是否正常。--

7、------------------------- intexample.pjt-Debug ---------------------------[main.c]"D:CCStudio_v3.1C6000cgtoolsbincl6x"-g-fr"D:/intexample/Debug"-d"_DEBUG"-mv6400-@"Debug.lkf""main.c"[Linking...]"D:CCStudio_v3.1C6000cgtoolsbincl6x"-@"Debug.l

8、kf"BuildComplete, 0Errors,0Warnings,0Remarks.四、 定时器中断设计首先,我们先实现一个定时器中断,因为它不受外部影响,容易测试。在global.h文件中,加入控制寄存器和中断寄存器别名定义,另外为了使用定时器1,也应对其别名进行定义:/*定义控制寄存器*/externcregistervolatileunsignedintAMR;    /*AddressModeRegister     */externcregistervolati

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。