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

C6000,关于.fphead位置不一样,导致代码运行异常。请教老师们!!

我改写中断入口宏定义

我增加了并行执行,没有改动延迟时间。代码运行正常。原代码如下

VEC_ENTRY .macro addr

    STW B0,*–B15
||   MVKL addr,B0
     MVKH addr,B0
    B B0
||   LDW *B15++,B0
NOP 2
NOP 1
NOP 1

NOP 1

;.fphead  n,1,,W,BU,nobr,nosat,0001110
.endm

改写后:比上面代码增加了延迟时间,.fphead产生的位置发送改变。代码运行异常!

VEC_ENTRY .macro addr
    STW B0,*–B15
||   MVKL addr,B0
     MVKH addr,B0
    B B0
||   LDW *B15++,B0

NOP 2 NOP 1
NOP 1

NOP 1

;.fphead  n,1,,W,BU,nobr,nosat,0001110
NOP 1
NOP 1
.endm

      反汇编仅仅是.fphead位置不一样。前面能一直正常进入ISR,后来这个就进入ISR若干次后,程序就跑飞。这是什么原因呢??

     备注:汇编代码没有写.fphead仅仅为了说明本例子,在我用分号的位置产生fphead。由于位置不一样,效果也不一样!

dong wei1:

回复 Denny%20Yang99373:

溢出倒是没有,我也难得管了。只能能正常进入方式就可以了!

赞(0)
未经允许不得转载:TI中文支持网 » C6000,关于.fphead位置不一样,导致代码运行异常。请教老师们!!
分享到: 更多 (0)