• dsp5509的中断系统


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

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

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

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

    4. 中断配置初始化函数

    void INTR_init( void )
    {
        IVPD=0x80;
        IVPH=0x80;
        IER0=8;
        DBIER0=8;
        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 8
    nmi:
        .loop 8
        nop
        .endloop
    int0:
        .loop 8
        nop
        .endloop
    int2:
        b _XINT
        nop
        .align 8
  • 相关阅读:
    hello fetch
    git 基础命令
    拜占庭将军
    如何学习区块链
    简单的理解区块链技术
    使用AOP统一验签和校参
    为每个请求分配traceId的两种方式及父子线程本地变量传递
    监听kafka消息
    JVM OOM分析与调优
    JVM内存结构
  • 原文地址:https://www.cnblogs.com/429512065qhq/p/9501552.html
Copyright © 2020-2023  润新知