如何进入汇编中断程序中的汇编宏单元进行调试?
可以在c语言跳转进入的汇编中断程序中进行调试,可以单步执行一条汇编宏指令,但是想进入宏汇编程序中 进行调试,请问怎么办?
谢谢
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如何进入汇编中断程序中的汇编宏单元进行调试?
可以在c语言跳转进入的汇编中断程序中进行调试,可以单步执行一条汇编宏指令,但是想进入宏汇编程序中 进行调试,请问怎么办?
谢谢
你好!
C2000的算法库使用宏的方式放在.h文件中,调试时候是不能跳到.h文件中的,因为宏不是代码,仅仅是符号的替代。
如你所说,只能进行汇编级别的调试,不能进行C级别的调试。
那个宏是汇编语言写的,后缀也是.asm,不可以进入那个宏调试吗?我在那个宏里修改了一条语句,得不到我要的结果。可是我讲那个修改过的宏在程序里取代那个宏指令之后,运行,发现可以得到我要的那个结果,请问这是怎么回事?应该在宏里修改是可以的,为什么运行不行,非要把那个宏里的程序抄过来代替那条宏指令之后才可以得到我要的结果呢?
谢谢解答!
.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
如果只执行“汇编程序”,得到的结果和将“汇编程序”中的宏调用指令用具体的宏汇编代替后的结果,两者不一致,不知道为什么!!!
请给予解答!谢谢!
我的程序是在CCS3.3下编的,目的是在EPWM1A端口产生一个波形,为了便于请教问题,我把程序付出来。因为被程序搞得有些头疼,就改名为caodao文件。
这个程序的目的是通过EPWM1A口产生一个方波信号。
在中断程序HVLLC_DPL_ISR.asm程序中用到了一个PWMDRV_LLC_ComplpairDB.asm 宏文件。我经过实验发现,将这个宏文件放入到程序include文件夹中和放到SRC文件夹中,编译运行后的结果是不一样的。请问这是什么原因呢?
补充下,那个程序我忘看改个句子了,程序重新 粘贴。
你说那个增量编译不行,其实是可以的。
可以通过修改include里的宏文件来编译运行,得到不同的结果。不知道你说的增量编译是不是CCS5.2里的“小锤子”。
顺便问下,你说的反汇编窗口,就是在汇编程序里能显示指针等信息的窗口,怎么设置出来,以前知道,现在忘了,谢谢!
经过调试,你说的macro修改后,需要清空project的说法是对的。谢谢 !