bloader entry from software reset

Support for Bloader and Screamer

Moderator: phalanx

Post Reply
DLK
Posts: 3
Joined: Wed Sep 29, 2004 6:34 pm

bloader entry from software reset

Post by DLK » Tue Mar 03, 2009 10:06 pm

I'm attempting to get the Bloader to function correctly from a software reset (16F877A). The software reset is apparently functioning correctly, but I'm not getting the handshake with Screamer 1.6 to work.

What registers does Bloader expect to be in a power-up reset state?

I have a timer loop that waits 10 seconds between issuing a reboot command in a monitor and executing the code below. This is to allow time to stop the terminal program and punch the download button on the Screamer, so I can boot new code into a machine without having physical access to that machine's reset button.

The relevant code snippet shows the things I'm doing now...
.
.
.
clrf T1CON ; turn off tmr1
movf RCREG, W ; Trash any received characters
movf RCREG, W
movf RCREG, W
clrf INTCON ; squelch all further interrupts, TMR2 included
bcf STATUS, 7 ; get pointed to bank 0 registers
bcf STATUS, 6
bcf STATUS, 5
GoTo 0h ; reenter bloader
.
.
.

Next, I intend to verify if the Bloader is issuing the 05h signal by using a DSO.

edit - I do not see the ASC[5] <ENQ> character being transmitted, so I'm either a) not entering the Bloader or b) not calling putc correctly. Even though I'm attempting the Bloader branch as an unstructured exit from interrupt service, the circular stack should keep me out of trouble on this. My interrupt service is pointing to bank 0 registers as well.

TIA-Dan

Post Reply