因项目的特殊性,不能使用csl库函数。
环境:第三方开发板DSP C6655,ccs5.5,win11 64bit。
目标:EMAC发送一帧网络数据后,进入发送结束中断服务程序。
目前进度:EMAC发送一帧数据后,CPU INT4已置位(IFR bit4)。
查询了TI处理器论坛,其中一个帖子中给出了方法,下载了vectors.asm并拷贝到项目的目录下。
配置了vectors.asm进入INT4的入口,编译后发现如下错误。
Vectors.asm如下:
.ref _c_int00
.ref _EAMC_TX_Complete
.sect "vectors"
; tell assembler not to use 16-bit compact instructions
; or else the vectors will not reside properly in memory
; (applies to entire section in which it is contained)
.nocmp
RESET_RST:
mvkl .S2 _c_int00, B0
mvkh .S2 _c_int00, B0
B .S2 B0
NOP
NOP
NOP
NOP
NOP
NMI_RST:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RESV1:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
RESV2:
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
INT4:
stw b0,*b15--[2] ; temp save b0 on stack
mvkl _EAMC_TX_Complete,b0 ; load destination address to b0
mvkh _EAMC_TX_Complete,b0
b b0 ; start branch to destination
ldw *++b15[2],b0 ; restore b0 register
nop 2 ; fill 2 of b0 restore delay slots
nop ; fill delay slot, pad packet
nop ; fill delay slot, pad packet
EAMC_TX_Complete是希望进入的中断服务函数,声明为:interrupt void EAMC_TX_Complete(void),该函数不在main.c中(应该不是问题的原因)。
cmd文件如下:
问题:
1、下载的vectors.asm拷贝到项目的目录下,在ccs中能直接查看,应该是已经加入到项目中了,该理解是否正确?
2、Vectors.asm和cmd的配置哪里有错?
谢谢!