logo image - link to home page

Products | Support | Resources | PurchaseContact  | Basket  | Checkout

  Home
  What's New
  Products
  Distributors
  Purchasing Info
  Developer Resources
  Support
  Upgrades
  Site Index
  Contact Us
  Pb-Free Info (RoHS)
 

 

keyword search:
 


 

Home:
  Developer Resources:

Programming Help
    Sample Programs
    Search the
PICBASIC™ List
    PICBASIC PRO™
Compiler Manual
    PICBASIC™ Compiler
Manual
    Serin2/Serout2 Modes
    ASCII Character Set
    Number Conversion
    Floating Point
Routines
    PBP Debug Monitor
    Articles and Tutorials

Hardware Help
    PICmicro® MCU
Selection Guide
    PIC16F62x Datasheet
    PIC16F84A Datasheet
    PIC16F87x Datasheet
    Parts / Vendor List
    PICPROTO™ Boards
    LAB-X1 Docs
    LAB-X2 Docs
    LAB-X20 Docs
    LAB-X3 Docs
    LAB-X4 Docs
    LAB-XUSB Docs
    LAB-XT Docs
     

 Other Resources
    MicroCode Studio
IDE for Windows
    melabs Loader
HEX files
    Links to other sites

PICBASIC PRO™ Compiler 2.2 Debug Monitor Example Program

PICBASIC PRO™ version 2.2 includes hooks that may be used to create a debug monitor program. A monitor is a program that runs resident with the user program and allows the user program to be stopped, restarted, traced and data to be displayed. The new ON DEBUG instruction in PICBASIC PRO allows a monitor program to be written in BASIC. The monitor is given control between each BASIC instruction. DISABLE DEBUG and ENABLE DEBUG psuedo-ops may be used to control where a program may be diverted.

A sample debug monitor program may be downloaded for an example of how it works. The ZIP file contains a text file that describes the operation of the debug monitor. Some of it is described below. But be sure to read the text file for additional information.

The monitor code itself should be placed at the beginning of the BASIC program preceded by a jump around it. Or the monitor program may be a separate file that is included at the beginning of any program to be monitored, as is shown here.

Immediately before each instruction, the current program address is stored into the variable DEBUG_ADDRESS and a jump to the monitor is executed. The monitor may then choose to display debugging information, wait for a user command, or simply return to the main program by jumping to the address in DEBUG_ADDRESS.

These techniques are best demonstrated in a program. The PICBASIC PRO program DEBUGMON.BAS shows one way of writing a debug monitor. It should be included at the beginning of the program to be debugged. Another sample program, DBLINK.BAS, shows this. DBLINK.BAS is the sample BLINK program with the debug monitor inserted.

DEBUGMON communicates with a terminal communications program running on a PC, such as Hyperterm. It uses the Hserin and Hserout instructions so it requires a PICmicro® with a hardware serial port. The default baud rate is 2400 and the TX and RX pins are PORTC.6 and PORTC.7.

DBLINK includes DEBUGMON at the beginning and then follows it with simple code to turn an LED connected to PORTD.0 on and off about once a second.

DEBUGMON Operation

DEBUGMON accepts several one letter commands. When it is ready for a command, it displays a "?" on the terminal screen. Once the "?" is displayed, a lower case letter may be typed on the terminal keyboard to execute a command. The current commands in DEBUGMON are as follows:

  • d - Display stack level and all bank 0 registers in hexadecimal.
  • g - Continue the program execution where it left off (Go).
  • h - Show a short Help screen.
  • m - Enter the Monitor program.
  • r - Start running the program at the Reset address (0).
  • s - Single step through one PICBASIC PRO statement.
  • t - Trace the program by displaying each BASIC statement's address in hexadecimal as it is executed, from where it left off.

The easiest way to understand the operation of DEBUGMON is to try it out with the DBLINK program. However, the "m" command may need a little additional explanation.

Once the program is running (and the LED is blinking) using Go or Trace, it is necessary to have a method to get control back to the monitor so you can examine the registers or Trace addresses. Entering "m" from the terminal stops the program's execution and turns control over to the monitor.

As the monitor is written in BASIC, it may be modified to provide other functionallity, such as breakpoints or elimination of the Hser commands to allow it to be used on PICmicros lacking a hardware serial port.


Copyright 2008
microEngineering Labs, Inc.
Box 60039
Colorado Springs CO 80960
(719) 520-5323
(719) 520-1867 fax
email: support@melabs.com

Last Updated: 08/04/2008

Home | What's New | Products | Support
Resources
| Purchase | Index Contact

PIC, PICmicro, dsPIC, and  MPLAB are registered trademarks of Microchip Technology Inc. in the USA and other countries.  PICBASIC, PICBASIC PRO, PICPROTO, and EPIC are trademarks of Microchip Technology Inc. in the USA and other countries.   BASIC Stamp is a trademark of Parallax, Inc.

Microchip third-party partner  Microchip Consultant Program Member