TI论坛
直播中

李允麒

7年用户 258经验值
私信 关注
[问答]

请问如何进入汇编中断程序中的汇编宏单元进行调试?

如何进入汇编中断程序中的汇编宏单元进行调试?
可以在c语言跳转进入的汇编中断程序中进行调试,可以单步执行一条汇编宏指令,但是想进入宏汇编程序中 进行调试,请问怎么办?
谢谢

回帖(8)

曹玥

2018-10-30 10:20:21
你好!
C2000的算法库使用宏的方式放在.h文件中,调试时候是不能跳到.h文件中的,因为宏不是代码,仅仅是符号的替代。
如你所说,只能进行汇编级别的调试,不能进行C级别的调试。
举报

李允麒

2018-10-30 10:32:54
引用: opqooq 发表于 2018-10-30 11:42
你好!
C2000的算法库使用宏的方式放在.h文件中,调试时候是不能跳到.h文件中的,因为宏不是代码,仅仅是符号的替代。
如你所说,只能进行汇编级别的调试,不能进行C级别的调试。

那个宏是汇编语言写的,后缀也是.asm,不可以进入那个宏调试吗?我在那个宏里修改了一条语句,得不到我要的结果。可是我讲那个修改过的宏在程序里取代那个宏指令之后,运行,发现可以得到我要的那个结果,请问这是怎么回事?应该在宏里修改是可以的,为什么运行不行,非要把那个宏里的程序抄过来代替那条宏指令之后才可以得到我要的结果呢?
谢谢解答!
举报

笪琳琳

2018-10-30 10:43:57
引用: Lindalwj 发表于 2018-10-30 11:55
那个宏是汇编语言写的,后缀也是.asm,不可以进入那个宏调试吗?我在那个宏里修改了一条语句,得不到我要的结果。可是我讲那个修改过的宏在程序里取代那个宏指令之后,运行,发现可以得到我要的那个结果,请问这是怎么回事?应该在宏里修改是可以的,为什么运行不行,非要把那个宏里的程序抄过来代替那条宏指令之后才可以得 ...

.asm是汇编语言的文件。
建议楼主给我们把例子贴上,尽量简短,不要贴整个大段大段的代码,谢谢!
                                                                         如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“是”按钮! 谢谢您的合作!
举报

李允麒

2018-10-30 11:01:06
引用: www033 发表于 2018-10-30 12:06
.asm是汇编语言的文件。
建议楼主给我们把例子贴上,尽量简短,不要贴整个大段大段的代码,谢谢!
                                                                         如果您认为此问题已被解答,请在“这是否解答您的问题” 后,点击“是”按钮! 谢谢您的合作!

宏:
PWMDRV_LLC_ComplPairDB .macro n
_PWMDRV_LLC_ComplPairDB_Duty:n:   .usect "PWMDRV_LLC_ComplPairDB_Section",2,1,1 ; input terminal for PWM duty percentage
_PWMDRV_LLC_ComplPairDB_Period:n:  .usect "PWMDRV_LLC_ComplPairDB_Section",2,1,1 ; input terminal for PWM period value

  MOVW DP, #_PWMDRV_LLC_ComplPairDB_Duty:n:  
  MOVL XAR0, @_PWMDRV_LLC_ComplPairDB_Duty:n: 
  MOVL XAR1, @_PWMDRV_LLC_ComplPairDB_Period:n: 
  MOVL ACC, *XAR1
  SFR  ACC, #14                  ;  MOVW DP, #_EPwm:n:Regs.TBPRD
  MOV  @_EPwm:n:Regs.TBPRD, AL     
  MOVL XT, @_EPwm:n:Regs.TBPRD
  QMPYL ACC, XT, *XAR0                              
  SFR  ACC, #8         
  MOVW DP, #_EPwm:n:Regs.CMPA
  MOV  @_EPwm:n:Regs.CMPA.half.CMPA, AL  
   
    .endm
调用宏的汇编程序:(汇编程序
.cdecls   C,LIST,"DSP2833x_Device.h"
.include "PWMDRV_LLC_ComplPairDB.asm"
_PWM_ISR:
  .if(INCR_BUILD = 2)
  
  PWMDRV_LLC_ComplPairDB 1;宏调用
  
 .endif
如果只执行“汇编程序”,得到的结果和将“汇编程序”中的宏调用指令用具体的宏汇编代替后的结果,两者不一致,不知道为什么!!!
请给予解答!谢谢!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分