1. DSP5509有32个中断,中断分为软件中断和硬件中断,同时软件中断不可以屏蔽。软件中断由指令触发。55x在中断时DSP会自动保存ST0_55、ST1_55、ST2_55三个寄存器。

2. 其中中断最关键的,但是用户也不必关心的是,进入中断之前,需要把关键寄存器的值都入栈,就是把当前寄存器的值保存起来(在栈里面备份),因为进入中断可能需要改变这些寄存器的值,然后退出中断,再把栈里面的备份值重新写到关键寄存器,叫做恢复现场。

3. 看下工程,首先写一个中断ISR服务函数,5509A有5个外部中断,INT0-INT4,本次使用INT2

void interrupt XINT()
{
nCount++; nCount%=;
if ( nCount== )
PCR1^=;
}

4. 中断配置初始化函数

void INTR_init( void )
{
IVPD=0x80;
IVPH=0x80;
IER0=;
DBIER0=;
IFR0=0xffff;
asm(" BCLR INTM");
}

5. 相关的asm文件,主要是用来配置中断向量表

ISR序号 硬件中断优先级 中断名称 24位中断向量地址低八位 中断子程序功能
0 0(最高) RESET 0H 复位(硬件或软件)
1 1 NMI 8H 外部不可屏蔽中断
2 2 INT0 10H 外部硬件中断0
3 5 INT2 18H 外部硬件中断2
4 6 INT0 20H 定时器0中断
5 7 RINT0 28H McBSP0接收中断
6 9 RINT1 30H McBSP1接收中断
7 10 XINT1 38H McBSP1发送中断
8 11 --- 40H 软件中断8
9 13 DMAC1 48H DMA通道1中断
10 14 DSPINT 50H 主机中断
11 15 INT3 58H 外部硬件中断3
12 17 RINT2 60H McBSP2接收中断
13 18 XINT2 68H McBSP2发送中断
14 21 DMAC4 70H DMA通道4中断
15 22 DMAC5 78H DMA通道5中断
16 4 INT1 80H 外部硬件中断1
17 8 XINT0 88H McBSP0发送中断
18 12 DMAC0 90H DMA通道0中断
19 16 INT4 98H 外部硬件中断4或RTC中断
20 19 DMAC2 A0H DMA通道2中断
21 20 DMAC3 A8H DMA通道3中断
22 23 TINT1 B0H 定时器1中断
23 24 I2C B8H I2C总线中断
24 2 BERR C0H 总线出错中断
25 25 DLOG C8H 数据记录中断
26 26(最低) RTOS D0H 实时操作系统中断
27 27 --- D8H 软件中断27
28 28 --- E0H 软件中断28
29 29 --- E8H 软件中断29
30 30 --- F0H 软件中断30
31 31 --- F8H 软件中断31
        .sect ".vectors"

        .ref _c_int00           ; C entry point
.ref _XINT .if (.MNEMONIC) rsv: ; reset vector
B _c_int00 ; branch to C entry point
NOP
.align
nmi:
.loop
nop
.endloop
int0:
.loop
nop
.endloop
int2:
b _XINT
nop
.align

dsp5509的中断系统的更多相关文章

  1. 【原创】MIPS中断系统的板级验证及实例测试

    “五一”假期前后这约五天时间,终于将MIPS中断系统进行了板级验证及实例测试.因为老师给的交叉编译工具不会用,所以测试代码完全用MIPS汇编编写.使用MARS而没有用QtSpim,其实我觉得SPIM这 ...

  2. 【原创】MIPS浅议之——中断系统之我见

    最近,准确的说应该是最近两个月的时间,我都在研究MIPS的异常与中断.或者可以说,最近这两个月,我才真正了解中断系统的整个结构和处理流程以及为什么要这样做?这段时间我最大的体会就是以前我们在“计算机组 ...

  3. STM32F072B-DISCO 深入研究 中断系统

    STM32F072B-DISCO 是我认为性价比最高的一款CPU的demo系统,以前一直在用PIC的CPU但最近几年ST异军突起,几次课题查找芯片无一例外都是ST,像USB,CAN,ZIGBEE等,S ...

  4. TMS320F28335项目开发记录9_28335中断系统

    28335中断系统 1.中断系统 在这里我们要十分清楚DSP的中断系统. C28XX一共同拥有16个中断源,当中有2个不可屏蔽的中断RESET和NMI.定时器1和定时器2分别使用中断13和14.这样还 ...

  5. STM8的中断系统以及外部中断详解

    STM8具有最多32的中断系统,在中断的处理上类似于cortexm系列的芯片,首先是每个中断的向量都是固化在系统内部的,用户需要向相应的中断向量flash位置写入中断处理函数,其二,每个中断向量都具有 ...

  6. 【CC2530入门教程-03】CC2530的中断系统及外部中断应用

    第3课  CC2530的中断系统及外部中断应用 广东职业技术学院  欧浩源 一.中断相关的基础概念  内核与外设之间的主要交互方式有两种:轮询和中断. 轮询的方式貌似公平,但实际工作效率很低,且不能及 ...

  7. ARM-Linux中断系统

    1.前言 了解Linux中断子系统,同时也需要了解ARM体系结构中断处理流程:在熟悉整个软硬件架构和流程基础上,才能对流程进行细化,然后找出问题的瓶颈.<2. 梳理中断处理子系统> 但是所 ...

  8. C51单片机_day_01(定时器和中断系统)

                c51单片机 51单片机是控制电路系统的开关,当然芯片就是51芯片,现在随着科技的发展,也是出了很多,功能更多,更全的芯片. 51是用c语言做为程序编程的语言 ——我对基本基础 ...

  9. Linux中断(interrupt)子系统之一:中断系统基本原理【转】

    转自:http://blog.csdn.net/droidphone/article/details/7445825 这个中断系列文章主要针对移动设备中的Linux进行讨论,文中的例子基本都是基于AR ...

随机推荐

  1. bzoj4600 [Sdoi2016]硬币游戏

    Description Alice和Bob现在在玩的游戏,主角是依次编号为1到n的n枚硬币.每一枚硬币都有两面,我们分别称之为正面和反面.一开始的时候,有些硬币是正面向上的,有些是反面朝上的.Alic ...

  2. ios 线程同步

    https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/Multithreading/ThreadSafe ...

  3. HDU 6386 Age of Moyu 【BFS + 优先队列优化】

    任意门:http://acm.hdu.edu.cn/showproblem.php?pid=6386 Age of Moyu Time Limit: 5000/2500 MS (Java/Others ...

  4. 【CSS单位】px、em、rem

    1.PX为单位 在Web页面初期制作中,我们都是使用“px”来设置我们的文本,因为他比较稳定和精确.但是这种方法存在一个问题,当用户在浏览器中浏览我们制作的Web页面时,他改变了浏览器的字体大小,这时 ...

  5. iOS之3DTouch的使用---很简单,看我就够啦~~

    3DTouch是苹果在iOS9之后新推出的功能,功能大致可以分成两种,一种是长按app的icon,会出现以下的界面,还有一种是在app内部的某个视图上使用,效果如下图. 详细的效果也可以参见微信.微信 ...

  6. 我想写一个前端开发工具(三):优化!从vue-cli学了几招

    我从过年开始写自己的前端工具 coodev,目前已经写出一个基本的架子,大多数预想的功能都能跑通,还剩一些需要解决的问题也都已经列出来了.本来这一周打算解决对不同后端模板的前后端渲染支持的问题.但是看 ...

  7. LeetCode28.实现strStr() JavaScript

    实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返 ...

  8. stylus(css预编译器)

    推荐去张鑫旭大神这里详细了解:http://www.zhangxinxu.com/jq/stylus/ 安装 npm install -g stylus 自动编译 $ stylus -w demo.s ...

  9. CSS Variables

    CSS原生变量(CSS自定义属性) 示例地址:https://github.com/ccyinghua/Css-Variables 一.css原生变量的基础用法 变量声明使用两根连词线"-- ...

  10. 解决MyEclipse JAVA EE无法识别Base64问题

    第一步:右击项目选择Build Path,选择Configure Build Path 第二步:点击JRE System Library选择右边的Edit 第三步:选择Alternate JRE,点击 ...