timer1的中断入口设定(我用的DM6437)
[复制链接]
本来采用的timer0,但是它的PRD貌似不能更改,所以想采用timer1,但是却进不了中断了。我的设置中断向量表的程序如下:
* * Copyright (C) 2003 Texas Instruments Incorporated * All Rights Reserved * * *---------vecs_timer1.asm--------- * * Assembly file to set up interrupt service table (IST) *
*------------------------------------------------------------------------------ * Global symbols defined here and exported out of this file *------------------------------------------------------------------------------ .global _vectors .global _c_int00 .global _vector1 .global _vector2 .global _vector3 .global _vector4 .global _vector5 .global _vector6 .global _vector7 .global _vector8 .global _vector9 .global _vector10 .global _vector11 .global _vector12 .global _vector13
.global _vector14 .global _extint7_isr ; Hookup the c_int14 ISR in main() *------------------------------------------------------------------------------ * Global symbols referenced in this file but defined somewhere else. * Remember that your interrupt service routines need to be referenced here. *------------------------------------------------------------------------------ .ref _c_int00 .ref _extint14_isr ; external interrupt INT 7 handler *------------------------------------------------------------------------------ * This is a macro that instantiates one entry in the interrupt service table. *------------------------------------------------------------------------------ VEC_ENTRY .macro addr STW B0,*--B15 MVKL addr,B0 MVKH addr,B0 B B0 LDW *B15++,B0 NOP 2 NOP NOP .endm
*------------------------------------------------------------------------------ * This is a dummy interrupt service routine used to initialize the IST. *------------------------------------------------------------------------------ _vec_dummy: B B3 NOP 5
*------------------------------------------------------------------------------ * This is the actual interrupt service table (IST). It is properly aligned and * is located in the subsection .text:vecs. This means if you don't explicitly * specify this section in your linker command file, it will default and link * into the .text section. Remember to set the ISTP register to point to this * table. *------------------------------------------------------------------------------ .sect ".vectors" ;.align 1024
_vectors: _vector0: VEC_ENTRY _c_int00 ;RESET _vector1: VEC_ENTRY _vec_dummy ;NMI _vector2: VEC_ENTRY _vec_dummy ;RSVD _vector3: VEC_ENTRY _vec_dummy _vector4: VEC_ENTRY _vec_dummy _vector5: VEC_ENTRY _vec_dummy _vector6: VEC_ENTRY _vec_dummy _vector7: VEC_ENTRY _vec_dummy _vector8: VEC_ENTRY _vec_dummy _vector9: VEC_ENTRY _vec_dummy _vector10: VEC_ENTRY _vec_dummy _vector11: VEC_ENTRY _vec_dummy _vector12: VEC_ENTRY _vec_dummy _vector13: VEC_ENTRY _vec_dummy _vector14: VEC_ENTRY _vec_dummy
_vector15: VEC_ENTRY _extint14_isr ; Hookup the c_int14 ISR in main()
*------------------------------------------------------------------------------
然后在主程序中设置了
IER=1; /* disable all interrupts except NMI */ ICR=0xffff; /* clear all pending interrupts */ ISTP = 0x10800400; INTC_EVTCLR0 = 0xFFFFFFFF; INTC_EVTCLR1 = 0xFFFFFFFF; INTC_EVTCLR2 = 0xFFFFFFFF; INTC_EVTCLR3 = 0xFFFFFFFF; INTC_EVTMASK3 = 0xFFFFFFFF; INTC_EVTMASK2 = 0xFFFFFFFF; INTC_EVTMASK1 = 0xFFFFFFFF; INTC_EVTMASK0 = 0xFFFFFFEF; INTC_INTMUX3 = 0x00040000; IER |= 0x00008002; 并编写了中断程序interrupt void extint14_isr(void)
现在进不去中断程序,请各位大神赐教啊!!
|