From: SourceForge.net <no...@so...> - 2005-01-03 22:10:05
|
Bugs item #1092528, was opened at 2004-12-28 22:47 Message generated for change (Comment added) made by jaimono You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1092528&group_id=599 Category: pic14 target Group: None Status: Open Resolution: None Priority: 5 Submitted By: Jaime Alberto Silva (jaimono) Assigned to: Nobody/Anonymous (nobody) Summary: Interrupt routine prologue vars not declared Initial Comment: In the attached code when I try to compile it gives me the following error: mono[ir_dongle]$ make sdcc -V -mpic14 -p16f84 -o ir_dongle.o ir_dongle.c Processor: 16f84 + "/usr/local/bin/sdcpp" -nostdinc -Wall -std=c99 -DSDCC=1 -DSDCC_MODEL_SMALL -DSDCC_pic14 -D__pic14 -I"/usr/local/bin/../share/sdcc/include/pic14" -I"/usr/local/share/sdcc/include/pic14" -I"/usr/local/bin/../share/sdcc/include" -I"/usr/local/share/sdcc/include" "ir_dongle.c" + "gpasm" -c "ir_dongle.asm" ir_dongle.asm:85:Error [113] Symbol not previously defined (WSAVE). ir_dongle.asm:89:Error [113] Symbol not previously defined (SSAVE). ir_dongle.asm:91:Error [113] Symbol not previously defined (PSAVE). ir_dongle.asm:102:Error [113] Symbol not previously defined (PSAVE). ir_dongle.asm:105:Error [113] Symbol not previously defined (SSAVE). ir_dongle.asm:107:Error [113] Symbol not previously defined (WSAVE). ir_dongle.asm:108:Error [113] Symbol not previously defined (WSAVE). make: *** [ir_dongle.o] Error 1 As you can see for some reason the variables in the prologue and epilogue of the interrupt routine are not declared. Here is the sdcc version: mono[ir_dongle]$ sdcc --version SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 2.4.7 #916 (Dec 28 2004) (UNIX) And my contact address is: mo...@oh... ---------------------------------------------------------------------- >Comment By: Jaime Alberto Silva (jaimono) Date: 2005-01-03 17:10 Message: Logged In: YES user_id=60015 About the naked feature: It will be nice to have it, maybe someone will like a shorter isr function. About the variables I don't think it is a 16f84 exclusive problem since I tried to compile it for 16f873 and gave me the same problem. Other nice feature could be to be able to disable the pagesel and banksel commands, they are completelly unnecesary in some models like the 16f84 that have only one code page an one memory bank. ---------------------------------------------------------------------- Comment By: Slade Rich (slade_rich) Date: 2004-12-29 01:03 Message: Logged In: YES user_id=849691 The naked interrupt feature has never been implemented for the PIC14. Files pic/device.c revision 1.25 and pic/pcode.c revision 1.81 have been modified to hopefull resolve the undefined WSAVE, PSAVE and SSAVE for the 16F84 device. ---------------------------------------------------------------------- Comment By: Jaime Alberto Silva (jaimono) Date: 2004-12-28 23:19 Message: Logged In: YES user_id=60015 I tryied to skip the bug by changing the isr to a naked function: static char ssave, wsave; static void interrupt_service_rutine () interrupt 0 _naked { _asm movwf _wsave movf STATUS,w movwf _ssave _endasm; if (!IR_RX) SET_IR_RX_DOWN; _asm movf _ssave,w movwf STATUS movf _wsave,w retfie _endasm; } And now the error is: mono[ir_dongle]$ make sdcc -V -mpic14 -p16f84 -o ir_dongle.o ir_dongle.c Processor: 16f84 + "/usr/local/bin/sdcpp" -nostdinc -Wall -std=c99 -DSDCC=1 -DSDCC_MODEL_SMALL -DSDCC_pic14 -D__pic14 -I"/usr/local/bin/../share/sdcc/include/pic14" -I"/usr/local/share/sdcc/include/pic14" -I"/usr/local/bin/../share/sdcc/include" -I"/usr/local/share/sdcc/include" "ir_dongle.c" ir_dongle.c:26: syntax error: token -> '_naked' ; column 58 ir_dongle.c:32: error 103: code not generated for 'interrupt_service_rutine' due to previous errors make: *** [ir_dongle.o] Error 1 So naked functions are also broken. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1092528&group_id=599 |