From: Vangelis R. <vr...@ot...> - 2004-08-29 10:03:09
|
----- Original Message ----- From: "Aaron Colwell" <mar...@ho...> To: <sdc...@li...> Subject: [sdcc-devel] PIC16 interrupt handler fix > I'm not sure what the process is for submitting patches to the compiler, so > I'm posting my fix on > this list. If there is a more appropriate place, please let me know. In general bugs and bugfixes can be sumitted through the bug tracker service of SourceForge. When you go to the SF SDCC Project page you will see the above links... You can also submit them in this list, but the problem is that mail can be lost or overlooked. Entries in the bug tracker are stored in the SF server... > handler was not restoring the WREG, BSR, and STATUS registers. > After looking at the compiler source I realized that this was done by > design. It was taking advantage of the fact that these registers get stored > on the fast register stack when a high priority interrupt occurs. > The problem was that the compiler was not generating the proper return > instruction so that these registers would be restored from the fast register > stack. This caused random behavior in my program because the interrupt > handler changed these 3 registers and they wouldn't get restored when > the interrupt handler would exit. Hmmm... that's an obvious bug. It comes because of the fact that its diffucult to test interrupt functions with gpsim (pic simulator). Thanks for the patch. The fix will available to the public in a few hours... Regards, Vangelis |