Hi,
> extern SIGHANDLER(rtcHandler) ;
>
> DEF_INTHIGH (high_int)
> DEF_HANDLER (SIG_TMR1, rtcHandler)
> END_DEF
>
> and in a separate file:
>
> SIGHANDLER (rtcHandler)
> {
> ...etc
> }
>
> it compiles fine, but the assembler doesn't like it:
>
> interrupts.asm:883:Error [113] Symbol not previously defined
> (_rtcHandler).
>
> If I put everything in the same file it works fine.
>
> Is this a limitation of the compiler/assembler, or it just failing to
> output the neccessary extern references for an __interrupt function
> (which
> SIGHANDLER expands to), or am I missing something terribly obvious!
The problem here is that the PIC16 backend does not see any use
of "extern void rtcHandler(void)" and thus incorrectly opts not to
emit the 'extern _rtcHandler' directive into the .asm file.
You can work around this issue by replacing
extern SIGHANDLER(rtcHandler);
with
extern unsigned rtcHandler;
For variables, the PIC16 backend seems to correctly emit the
'extern' directive, and as the routine is only used in the
assembler/macro, the type is no real issue. This is not clean,
but works for me.
Raphael
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now. http://p.sf.net/sfu/bobj-july
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user