Hi list,

in order to  get rid of some longish preamble in my interrupt I tried to
define the interrupt as '__naked' but this produced 'Bus error' during
compilation.

After a lot of pruning I got the code down to:

unsigned char x;

void test()  __naked  {
        if (x) {
                x = 1;
            }
    }

which when compiled with parameters:

SDCCFLAGS = "-Wl,-m,-s 18f4550.lkr" -mpic16 -p18f4550 --disable-warning 85
--std-sdcc99 --obanksel=3 --pno-banksel 


produces SIGSEGV .

If I remove the __naked the problem disappears, but I'm back in square one.

So this appears to be compiler bug. I tried to look for this in the list
archives but I could not find anything related to that.

Now I have specific questions:

1) Should I file a bug?

2) How can I circumvent this?

My actual problem is that the compilers emits a lot of code like:

002C C000 FFE5 01503         MOVFF   r0x00, POSTDEC1
0030 C000 FFE5 01504         MOVFF   r0x01, POSTDEC1
0034 C000 FFE5 01505         MOVFF   r0x02, POSTDEC1
0038 C000 FFE5 01506         MOVFF   r0x03, POSTDEC1
003C C000 FFE5 01507         MOVFF   r0x04, POSTDEC1
0040 C000 FFE5 01508         MOVFF   r0x05, POSTDEC1

that I would like to avoid, all I want is for the compiler to allocate
these are global variables used solely by the interrupt so that there
is no need to save/restore them...I know 'naked' alone would not do this
but it seems like a necessary step in getting there...?

3) I seem to recall some list discussion relating to PIC / inline assembly
and that it does not work or something but I cannot find that
discussion. Is there a problem there?

br Kusti




------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to