hi,

i'm playing with interrupts in pic18.

in main.c I have:
------------------------------------------------
#include <signal.h>
SIGHANDLER(i2c_slave_isr); //forward declaration, implementation is
elsewhere
DEF_INTHIGH(high_int)
DEF_HANDLER(SIG_SSP, i2c_slave_isr);
END_DEF
------------------------------------------------

in i2c_slave.c, I have:
------------------------------------------------
#include <signal.h>
SIGHANDLER(i2c_slave_isr) {
......
}
------------------------------------------------

main.c cannot compile. although there is a function prototype for
i2c_slave_isr, this function is not called by any C code and SDCC does not
include an "extern _i2c_slave_isr" line in the asm file, so the function is
not declared and the file cannot be compiled.

However iIf I add a
------------------------------------------------
void never_called() {
    i2c_slave_isr();
}
------------------------------------------------
somewhere in main.c, this file compiles. But then I suck two more flash
words with a useless:
------------------------------------------------
; ; Starting pCode block
S_main__never_called    code
_never_called:
;    .line    89; main.c    i2c_slave_isr();
    CALL    _i2c_slave_isr
    RETURN
------------------------------------------------
but this is the code that actually enables the "extern" line !

Is there an __attribute__((used)) thing I can use so that the extern gets
generated and I can avoid the never_used routine?

this could be added in a DECLARE_SIGHANDLER(name) macro.

I tried adding a
------------------------------------------------
__asm extern _i2c_slave_isr __endasm;
------------------------------------------------
before DEF_INTHIGH, but that does not help. I get an error:
main.c:84: syntax error: token -> '__endasm' ; column 13

Regards
Sebastien
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to