Dick Cappels' project pages http://www.projects.cappels.org

return to HOME

 Memory and I/O monitor program for

AVR Micro controllers

Works on AVR controllers with RAM and a hardware UART. This code is easily modified to integrate with ROM applications to provide the ability to monitor and interact with ROM applications via an terminal simulation program over an RS-232 port. It can also be used to stimulate and monitor I/O to aid in debugging hardware. It is very helpful to be able to look around at memory, I/O and peripherals, and change things inside a running controller

If you adapt this to a controller with a stack pointer that is more than 8 bits wide, be sure that both registers in the stack pointer, both spl and sph, are initialized.

As an example

ldi     temp,low(ramend)   ;get low byte of highest RAM address for this chip.
out spl,temp ;set spl
ldi temp,high(ramend) ;get low byte of highest RAM address for this chip.
out sph,temp ;set spl

The monitor's commands allow reading, monitoring, and byte-by-byte  modification of memory locations $0000 through $00FF, which includes the register array and I/O space.

Here is the assembly code for the monitor.
Here is the hex file for the AT90S2313 (I think it will also work with the ATTINY2313 without modification).


Please see the liability disclaimer on the HOME page.

Contents ©2002, 2005, updated October, 2014 (thanks to Rick for pointing out a corrupt file).
Richard Cappels All Rights Reserved. http://www.projects.cappels.org/