Hi there,

I'm developing some code for a pic16f684, and I'm having a problem
with the interrupt code the compiler is generating.  If I manually
edit the asm file and delete all of the code inserted in the isr
to save and restore the state of the W, STATUS, PCL and FSR
registers, and just leave my actual interrupt service code in,
my code is working as expected, as I currently have a semaphore
that gets checked in my main() loop that waits until the isr is
complete.  This of course isn't acceptable for my final code.

When I leave the isr code that saves/restores the state, the
processor appears to hang.

Also, there appears to be some suspect code generated at the end
of the isr to restore the W register.  The save code is:

MOVWF WSAVE

but the restore code is:

SWAPF WSAVE,F
SWAPF WSAVE,W

Shouldn't the restore code be:
MOVF WSAVE, W

This isn't the whole of the problem in the interrupt code though,
as changing this doesn't resolve the hang issue.

I'm running from the most current code base, revision 8053, on
Fedora fc15.i686.PAE.

Any help or pointers as to what I may be doing wrong would be
appreciated.  Thanks.

Joel
-- 
Joel Davidson
Austin, TX
j...@prismnet.com

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to