原创 DM6437 中断向量表配置

2009-7-6 20:43 4099 1 1 分类: 处理器与DSP

b.gif
b.gif

DM6437  中断向量表配置
1. 编写中断服务例程
在.c源文件中编写ISR函数c_intXX,用于中断处理,如:
interrupt void c_intXX (void)
{
          …;
}
注:对于硬件中断而言,XX = 00~15。
2.初始化中断向量表,并在内存段中的中断向量表中配置好对应的中断向量
          首先是把中断向量表定位到某一内存段中,我们可以在cmd文件中配置中断向量表的内存映射,如:
MEMORY
{
    VECS:       o = 0x10800000  l = 0x00000400
    MEMTEST:    o = 0x10800400  l = 0x00000200
    IRAM:       o = 0x10800600  l = 0x0001FA00
    DDR2:       o = 0x80000000  l = 0x10000000
}
SECTIONS
{
    .bss        >   IRAM
    .cinit      >   IRAM
    .cio        >   IRAM
    .const      >   IRAM
    .data       >   IRAM
    .far        >   IRAM
    .stack      >   IRAM
    .switch     >   IRAM
    .sysmem     >   IRAM
    .text       >   IRAM
    .vecs       >   VECS
    .ddr2       >   DDR2
}
      
           然后建立一个.asm文件,用以配置中断向量表中的中断向量,我们需要声明一些全局变量,以便其他源文件可以引用这些变量或者引用其他源文件的变量,如:
   *-----------------------------------------------------------------* Global symbols defined here and exported out of this file
*--------------------------------------------------------------------   .global _vectors
   .global _c_int00
   .global _vector1                  
   .global _vector2       ;RSVD保留
   .global _vector3       ;RSVD保留
   .global _vector4
   .global _vector5
   .global _vector6
   .global _vector7
   .global _vector8
   .global _vector9    
   .global _vector10
   .global _vector11  
   .global _vector12  
   .global _vector13  
   .global _c_int14_vencint  ; Hookup the c_int14 ISR in main()
   .global _vector15
              
    因为引用了rts的_c_int00中断,即RESET中断,因此需要引入这个符号:
   .ref     _c_int00
      
为了把中断服务例程的地址,即中断向量插入到中断向量表中,可以定义一个宏:
VEC_ENTRY .macro addr
       STW      B0,*--B15
       MVKL     addr,B0
       MVKH     addr,B0
       B        B0
       LDW      *B15++,B0
       NOP      2
       NOP  
       NOP  
.endm        
          
      为了初始化中断向量表中的中断向量,可以定义一个虚拟的中断向量:
_vec_dummy:
     B       B3
     NOP     5
          
     接下来就可以配置中断向量表了:
.sect “.vecs”
.align 1024
_vectors:
_vector0:      VEC_ENTRY _c_int00         ;RESET中断
_vector1:      VEC_ENTRY _vec_dummy ;NMI不可屏蔽中断
_vector2:      VEC_ENTRY _vec_dummy ;保留中断1
_vector3:      VEC_ENTRY _vec_dummy ;保留中断2
_vector4:      VEC_ENTRY _vec_dummy ;外部中断INT4
_vector5:      VEC_ENTRY _vec_dummy ;外部中断INT5
_vector6:      VEC_ENTRY _vec_dummy ;外部中断INT6
_vector7:      VEC_ENTRY _vec_dummy ;外部中断INT7
_vector8:      VEC_ENTRY _c_int08 ; EDMA控制器中断EDMAINT,对应于c_int08 ISR
_vector9:      VEC_ENTRY _vec_dummy;JTAGRTDX中断
_vector10:     VEC_ENTRY _vec_dummy;EMIF_SDRAM_Timer中断
_vector11:     VEC_ENTRY _vec_dummy;McBSP_0_Receive中断
_vector12:     VEC_ENTRY _vec_dummy;McBSP_1_Transmit中断
_vector13:     VEC_ENTRY _vec_dummy;Host_Port_Host_to_DSP中断
_vector14:     VEC_ENTRY _vec_dummy;Timer0中断
_vector15:     VEC_ENTRY _vec_dummy;Timer1中断
3. 在C程序中指定定义的中断向量表,并且启用CPU中断功能
在C程序中,用CSL的IRQ模块来设置中断比较方便,在设置之前,需要外部链接上面的asm程序的中断向量表符号:
extern far void vectors();//之所以为vectors,因为C编译器编译后自动改名其为_vectors
引用了中断向量表之后,就可以设置中断了:
       IRQ_setVecs(vectors); //指向asm中定义的中断向量表
       IRQ_nmiEnable();
       IRQ_globalEnable();
       IRQ_map(IRQ_EVT_EDMAINT, 8);       //映射事件到指定的物理中断号
       IRQ_reset(IRQ_EVT_EDMAINT);
4.启动中断源,如venc中断
至此,中断服务例程c_int14_vencint  就可以为venc中断服务了,其它硬件中断向量的配置同理。

文章评论0条评论)

登录后参与讨论
相关推荐阅读
redgalaxy 2009-09-11 15:26
(EDMA)基于DSP TMS320C6211的闯红灯检测软件系统设计
1 引言随着社会的发展,机动车辆的日益增多,对现代化的交通提出了更高的要求,智能化的交通管理成为一种需要。在多种交通违规现象中,闯红灯违章无疑是很普遍,也是危害很大的一种,为了遏制闯红灯违章行为,减少...
redgalaxy 2009-08-19 17:23
TI C6000DSP上TCP/IP协议栈的实现
摘要:针对TIC6000系列DSP网络开发工具NDK进行研究,结合TMS320DM642芯片详细描述了NDK的结构,讲述了利用NDK开发DSP网络应用程序的一般过程和实际应用中要注意的问题,并给出了N...
redgalaxy 2009-08-18 16:33
winsock编程入门
    什么是Socket<?XML:NAMESPACE PREFIX = O />接触网络编程当然要了解Socket,Socket(套接字)是一种网络编程接口,Socket提供了很多灵活...
redgalaxy 2009-08-18 15:44
socket 编程
WSAStartup函数初始化Winsock[声明]int WSAStarup(WORD wVersionRequested,LPWSADATA lpWSAData);[参数]wVersionRequ...
redgalaxy 2009-08-18 10:46
sockaddr_in sockaddr in_addr区别联系
Updated Jul 19, 2007 by lousia.qian SOCKET   UDP,TCP socket通信IntroductionDetailssockaddr_in sockaddr...
redgalaxy 2009-08-17 17:17
基于NDK的数字电视传输流网络采集系统
作者:电子设计…     文章来源:本站原创     点击数:       更新时间:2007-10-10    摘要:本文介绍了数字电视传输流的采集和利用TCP/ IP 协议实现在以太网中传输数字电...
我要评论
0
1
1
2
3
4
5
6
7
8
9
0
关闭 热点推荐上一条 /2 下一条