TI中文支持网
TI专业的中文技术问题搜集分享网站

关于6748中断向量表

E:\ti\ccsv5\utils\bin\gmake -k all 'Building file: ../vec.asm' 'Invoking: C6000 Compiler' "E:/ti/ccsv5/tools/compiler/c6000_7.3.4/bin/cl6x" -mv6740 -g –define=c6748 –include_path="E:/ti/ccsv5/tools/compiler/c6000_7.3.4/include" –display_error_number –diag_warning=225 –abi=coffabi –preproc_with_compile –preproc_dependency="vec.pp"  "../vec.asm" "../vec.asm", ERROR!  : [E0000] Can't find end of 'VEC_ENTRY' macro definition                                 starting on line 179 — Aborting!

就是在编译的时候出现上述的问题,描述说是   没找到VEC_ENTRY宏定义的结尾,请问这问题怎么解决,下面是我的中断向量表的vec.asm文件

里面描述的179行对应下面程序的28行(VEC_ENTRY .macro addr)

.global _vectors//全局标号,可以在别处使用.
.global _c_int00
.global _vector1
.global _vector2
.global _vector3
.global _vector4
.global _vector5
.global _vector6
.global _vector7
.global _vector8
.global _vector9
.global _EDMA_ISR
.global _vector11
.global _vector12
.global _vector13
.global _vector14 ; Hookup the TimerHandler ISR in main() 汇编中的C语言函数要加“_”
.global _vector15

/*——————————————————————————
* Global symbols referenced in this file but defined somewhere else.
* Remember that your interrupt service routines need to be referenced here.
*——————————————————————————*/
.ref _c_int00//相当于 extern,在这里引用,在别处定义
/*——————————————————————————
* This is a macro that instantiates one entry in the interrupt service table.
*——————————————————————————*/
//VEC_ENTRY .macro addr//定义中断向量入口地址
VEC_ENTRY .macro addr
STW B0,*–B15//保存B0 内容,中断产生后执行的第一条指令
MVKL addr,B0
MVKH addr,B0//把地址装入 B0
B B0//跳转至 B0 中存储的地址
LDW *B15++,B0//恢复B0内容; 由于C6000流水线的原因,跳转后仍然可以执行多条指令
NOP 2
NOP
NOP
.endm
/*——————————————————————————
* This is a dummy interrupt service routine used to initialize the IST.
*——————————————————————————*/
_vec_dummy://未定义中断服务程序
B B3//其他没有定义的中断跳转至 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  ".vecs"//定义段
.align 1024//1024 字节对边界对齐

_vectors:
_vector0: VEC_ENTRY _c_int00 ;RESET 跳转到_c_int00 ,_c_int00是 c语言程序的入口
_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 _EDMA_ISR
_vector11: VEC_ENTRY _vec_dummy
_vector12: VEC_ENTRY _vec_dummy
_vector13: VEC_ENTRY _vec_dummy
_vector14: VEC_ENTRY _vec_dummy ; Hookup the TimerHandler ISR in main() 定时中断中断向量
_vector15: VEC_ENTRY _vec_dummy

Shine:

试试.endm 不要顶格写。

赞(0)
未经允许不得转载:TI中文支持网 » 关于6748中断向量表
分享到: 更多 (0)