专家您好:
这是中断向量表,汇编程序
.sect ".text:vecs"
.align 1024
_vectorss:
_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 ; Hookup the c_int08 ISR in main()
_vector9: VEC_ENTRY _vec_dummy
_vector10: VEC_ENTRY _c_int08
_vector11: VEC_ENTRY _vec_dummy
_vector12: VEC_ENTRY _vec_dummy
_vector13: VEC_ENTRY _vec_dummy
_vector14: VEC_ENTRY _vec_dummy
_vector15: VEC_ENTRY _vec_dummy
调试时,在memory观看,每一行都分配了0x20的地址空间,这也是IST的格式,每个中断ISFP有0x20的空间存放中断服务程序
我的问题是,这也就是一段普通的汇编程序,没有什么特殊指令指明这里是IST,指明每一行分配0x20的空间,为什么在这里给每一行程序分配了0x20的空间,编译器怎么知道这段程序是一个中断向量表的
谢谢
noaming:
在主函数中会指定中断向量表的位置,如:
IRQ_setVecs(vectors); /* point to the IRQ vector table */