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
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.
2005, updated October, 2014 (thanks to Rick for pointing out a corrupt file).
Richard Cappels All Rights Reserved. http://www.projects.cappels.org/