DSP中断设置简明教程.doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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.1\C6000\cgtools\lib\rts6400.lib 如果您使用的是其他器件类型,请在lib文件夹内选择其他器件库。 添加源文件,选择File-New-Source File,保存为main.c到工程路径下。 在此文件内书写主函数。 void main(void) { ?while(1); } 最后通过如2步骤添加此文件到工程。 3.添加寄存器别名定义头文件。在本示例中,对需要用到的寄存器定义别名后,构成global.h文件,内容在后文逐步介绍。在此可以建立一个空文件,并在main.c中包括它。 #i nclude global.h 到此,一个DSP的新工程框架制作完毕。 4.添加cmd链接文件 ?为了实现链接时内存配置,我们需要提供一个cmd文件,为了方便,可以从官方的示例程序中拷贝一份,再加以修改。 ?在安装目录下D:\CCStudio_v3.1\tutorial\器件类型\hello1示例下,会找到一个hello1.cmd, ?将其拷贝到本工程目录下,并将其改名为link.cmd,最后将其添加到工程中。 ?由于此文件没有声明stack和heap,会产生警告,如果动态数据较多也容易溢出。因此我们最好在此文件提供stack和heap的大小,其值可根据实际情况调整,修改后,此文件内容类似为: -stack 0x1000 -heap 0x1000 MEMORY { ?? ISRAM?????? : origin = 0x0,???????? len = 0x1000000 } SECTIONS { ??????? .vectors ISRAM ??????? .text??? ISRAM ??????? .bss???? ISRAM ??????? .cinit?? ISRAM ??????? .const?? ISRAM ??????? .far???? ISRAM ??????? .stack?? ISRAM ??????? .cio???? ISRAM ??????? .sysmem? ISRAM } 至此,工程建立完毕,可以编译一遍,观察是否正常。 ---------------------------? intexample.pjt - Debug? --------------------------- [main.c] D:\CCStudio_v3.1\C6000\cgtools\bin\cl6x -g -frD:/intexample/Debug -d_DEBUG -mv6400 HYPERLINK mailto:-@%22Debug.lkf -@Debug.lkf main.c [Linking...] D:\CCStudio_v3.1\C6000\cgtools\bin\cl6x HYPERLINK mailto:-@%22Debug.lkf -@Debug.lkf Linking Build Complete, ? 0 Errors, 0 Warnings, 0 Remarks. 四、?定时器中断设计 首先,我们先实现一个定时器中断,因为它不受外部影

文档评论(0)

bm5044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档