|
|||||||||||
Technical Support Support Resources
Product Information |
µVISION DEBUGGER: Debugging A51 MPL MacrosInformation in this article applies to:
QUESTIONI have Assembler modules that use MPL MACROs. In previous versions of C51 (before 6.23) the µVision Debugger did not synchronize with the source code at all. This problem seems to be fixed in Version 6.23. However, I'm still unable to set breakpoints at the MPL macro itself. Is there some trick? ANSWERMPL macros are a historic feature of the 8051 Assemblers. They were initially implemented in the Intel ASM51 Assembler and we have added them to the Keil A51 Assembler. At the time MPL macros were developed, debug tools did not support source-level debugging. Therefore, the concept of the MPL macro processor did not correctly handle problems that arise when you want synchronization between source code and the generated object files. The Keil A51 Assembler (starting with C51 Version 6.23) implements proper line number synchronization for Assembler files that contain MPL macros. It is possible to set breakpoints on the MPL macro when the first Assembler instruction of the macro is in the same line as the %define statement of the MPL macro language. For example: $MPL ; First MPL macro line does not start with code %*define (ldxdata1 (Var)) mov dptr,#%Var movx a,@dptr ) ; First MPL macro line contains assembler instructions %*define (ldxdata2 (Var)) ( mov dptr,#%Var movx a,@dptr ) ?XD?mplmac segment xdata rseg ?XD?mplmac Var1: DS 1 Var2: DS 1 ?PR?mplmac SEGMENT CODE RSEG ?PR?mplmac %ldxdata1(Var1) ; no code at macro begin ; -> no break information at source level MOV R6,A %ldxdata2(Var2) ; code at macro begin ; -> breaks at source level possible MOV R7,A ret end CONCLUSIONThe µVision debugger supports source-level debugging for code that was initally written for Intel ASM51. However, you must have an assembler instruction in the same line as the MPL %define statement. Last Reviewed: Friday, January 22, 2021 | ||||||||||
|
Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.