为什么我的emac通信主程序中加了中断地址入口的程序就运行不了了?IRQ_setVecs(vectors); //Sets the base address of the interrupt vectors 我在主函数main()中添加的一句话,哪位高手给指点一下?<br />以下是ves_dm642.asm的程序,我没有动:<br />*<br />* Copyright (C) 2003 Texas Instruments Incorporated<br />* All Rights Reserved<br />*<br />*<br />*---------vecs_edma1.asm---------<br />*<br />* Assembly file to set up interrupt service table (IST)<br />*<br /><br />*------------------------------------------------------------------------------<br />* Global symbols defined here and exported out of this file<br />*------------------------------------------------------------------------------<br /> .global _vectors<br /> .global _c_int00<br /> .global _vector1<br /> .global _vector2<br /> .global _vector3<br /> .global _vector4<br /> .global _vector5<br /> .global _vector6<br /> .global _vector7<br /> .global _vector8 <br /> .global _vector9 <br /> .global _vector10 <br /> .global _vector11 ; Hookup the c_int08 ISR in main() <br /> .global _vector12 ; Hookup the c_int08 ISR in main()<br /> .global _vector13 <br /> .global _vector14 <br /> .global _vector15 <br /><br />*------------------------------------------------------------------------------<br />* Global symbols referenced in this file but defined somewhere else. <br />* Remember that your interrupt service routines need to be referenced here.<br />*------------------------------------------------------------------------------<br /> .ref _c_int00<br /><br />*------------------------------------------------------------------------------<br />* This is a macro that instantiates one entry in the interrupt service table.<br />*------------------------------------------------------------------------------<br />VEC_ENTRY .macro addr<br /> STW B0,*--B15<br /> MVKL addr,B0<br /> MVKH addr,B0<br /> B B0<br /> LDW *B15++,B0<br /> NOP 2<br /> NOP <br /> NOP <br /> .endm<br /><br /><br />*------------------------------------------------------------------------------<br />* This is a dummy interrupt service routine used to initialize the IST.<br />*------------------------------------------------------------------------------<br />_vec_dummy:<br /> B B3<br /> NOP 5<br /><br />*------------------------------------------------------------------------------<br />* This is the actual interrupt service table (IST). It is properly aligned and<br />* is located in the subsection .text:vecs. This means if you don't explicitly<br />* specify this section in your linker command file, it will default and link<br />* into the .text section. Remember to set the ISTP register to point to this<br />* table.<br />*------------------------------------------------------------------------------<br /> .sect ".text:vecs"<br /> .align 1024<br /><br />_vectors:<br />_vector0: VEC_ENTRY _c_int00 ;RESET<br />_vector1: VEC_ENTRY _vec_dummy ;NMI<br />_vector2: VEC_ENTRY _vec_dummy ;RSVD<br />_vector3: VEC_ENTRY _vec_dummy<br />_vector4: VEC_ENTRY _vec_dummy<br />_vector5: VEC_ENTRY _vec_dummy<br />_vector6: VEC_ENTRY _vec_dummy<br />_vector7: VEC_ENTRY _vec_dummy<br />_vector8: VEC_ENTRY _vec_dummy <br />_vector9: VEC_ENTRY _vec_dummy<br />_vector10: VEC_ENTRY _vec_dummy<br />_vector11: VEC_ENTRY _vec_dummy ; Hookup the c_int08 ISR in main()<br />_vector12: VEC_ENTRY _vec_dummy ; Hookup the c_int08 ISR in main()<br />_vector13: VEC_ENTRY _vec_dummy<br />_vector14: VEC_ENTRY _vec_dummy<br />_vector15: VEC_ENTRY _vec_dummy<br /><br />*------------------------------------------------------------------------------<br /><br />相关头文件我也加了:<br />#include <csl.h><br />#include <csl_emifa.h><br />#include <csl_irq.h><br /> |
|