我的DSP之路-关于中段向量的一些心得与问题 2008-2-26 中断向量表的编写 .ref _bad_trap ; 这个标号外部没有定义,为什么还用.ref,而不是用..global? .ref _c_int0 ; entry point to the code .sect "vectors" ;自定义段名 _vector: ;向量表地址标识 RSVECT B _c_int0 ;_c_int0复位程序入口地址 INT1 B _bad_trap ;没有用到的中断跳转到非法中断陷阱 INT2 B _bad_trap ;前面的标号INT2只是为了让人更容易理解是这是什 ;么中断的向量,还是有其它的什么用处? INT3 B PM6 ;有用到的中断,则写其实际中断的地址或标号 INT4 B _bad_trap ; PM 8 Int level 4 7 INT5 B _bad_trap ; PM A Int level 5 8 INT6 B _bad_trap ; PM C Int level 6 9 ……. .end PAGE 0 : /* program memory */ VECS: origin = 00000h, length = 0007Fh vectors : > VECS PAGE = 0 这样就可以正确装入中断向量表 CPU中断向量地址和外设中断向量PIV有什么不同?什么是外设中断向量PIV? 中断的优先级是否固定不可变,还是说书中列出的是默认的优先级? ADC、外部引脚、SPI、SCI、CAN邮箱、CAN错误有高低优先级选择,其它的优先级固定。 为什么同一个中断源里的中断还有不同的中断优先级?进的是同一个中断程序,不同优先级有什么作用? 2008-2-27 按例子改的lf2406a中断向量表: ; ssembly language code, vectors for test code on TMS320C2406 ; filename: Vectors.asm */ ; original: 02/27/2008 by: CQ */ ; last update: 02/27/2008 by: CQ */ .ref _bad_trap ; illegal trap .ref int0 ; entry point to the code .global _vector ; also check the conditional compile in ; scidrv.c and scidrv.h .sect "vectors" _vector: RSVECT B int0 ;复位 INT1 B _bad_trap ; 外部中断1 DPINTA EVA功率驱动保护引脚中断 DPINTB EVB功率驱动保护引脚中断 ;ADCINT 高优先级 ;XINT1 高优先级 ;XINT2 高优先级 外部引脚中断 ;SPIINT 高优先级 ;RXINT 高优先级 SCI接收中断 ;TXINT 高优先级 SCI发送中断 ;CANMBINT 高优先级 CAN邮箱中断 ;CANERINT 高优先级 CAN错误中断 INT2 B _bad_trap ;外部中断1 ;CMP1INT 比较器中断 ;CMP2INT ;CMP3INT ;TIPINT 定时器1周期中断 ;T1CINT 定时器1比较中断 ;T1UFINT 定时器1下溢中断 ;T1OFINT 定时器1上溢中断 ;CMP4INT ;CMP5INT ;CMP6INT ;T3PINT ;T3CINT ;T3UFINT ;T3OFINT INT3 B _bad_trap ;外部中断3 ;T2PINT ;T2CINT ;T2UFINT ;T2OFINT ;T4PINT ;T4CINT ;T4UFINT ;T4OFINT INT4 B _bad_trap ;外部中断4 ;CAP1INT 捕获中断1 ;CAP2INT ;CAP3INT ;CAP4INT ;CAP5INT ;CAP6INT INT5 B _bad_trap ;外部中断5 ;SPIINT 低优先级 ;RXINT 低优先级 SCI接收中断 ;TXINT 低优先级 SCI发送中断 ;CANMBINT 低优先级 CAN邮箱中断 ;CANERINT 低优先级 CAN错误中断
INT6 B _bad_trap ;外部中断6 ;ADCINT 低优先级 ;XINT1 低优先级 外部引脚中断 ;XINT2 低优先级 外部引脚中断 RESERVED B _bad_trap ;保留,分析中断用 SW_INT8 B _bad_trap ;软件中断8~16 SW_INT9 B _bad_trap ; SW_INT10 B _bad_trap ; SW_INT11 B _bad_trap ; SW_INT12 B _bad_trap ; SW_INT13 B _bad_trap ; SW_INT14 B _bad_trap ; SW_INT15 B _bad_trap ; SW_INT16 B _bad_trap ; TRAP B _bad_trap ;TRAP指令中断 NMI B _bad_trap ;不可屏蔽软中断 EMU_TRAP B _bad_trap ;用于仿真 SW_INT20 B _bad_trap ;软件中20~31 SW_INT21 B _bad_trap ; SW_INT22 B _bad_trap ; SW_INT23 B _bad_trap ; SW_INT24 B _bad_trap ; SW_INT25 B _bad_trap ; SW_INT26 B _bad_trap ; SW_INT27 B _bad_trap ; SW_INT28 B _bad_trap ; SW_INT29 B _bad_trap ; SW_INT30 B _bad_trap ; SW_INT31 B _bad_trap ; .end
|