Dear Vaclav,
Earlier I contributed a banksel optimalization code to the pic14 port.
That can be achieved with absolute variable definition like the following:
__data unsigned int __at(0x40) somevar1;
__data unsigned int __at(0x42) somevar2;
This should reduce so much banksels.
Theblond
PS.: I know that absolute variable definition reduce code portability,
but until the address of the variables are determined at the linking
phase, the compiler cannot optimise them. :(
Raphael Neider írta:
> Hi Vaclav,
>
>> I have one application - some special type of headlamp driven by
>> PIC12F675. The problem is that I can not fit into the memory.
>
> [snip]
>
>> I use all functions static. Most of them is used on more places, so
>> inlining is not the right way. My variables are as short as possible.
>> But there is a lot of banksels near variables. Can I optimize banksels
>> somehow ? I could not find any SDCC flag for PIC14 port.
>
> As far as I know, there is no such flag for the PIC14 port. BANKSEL
> optimizations appear to be enabled unconditionally.
>
>> Is there any other way how to reduce the overhead code ?
>> Probably something in libsdcc.lib and pic12f675.lib ?
>
> You can try to avoid pulling in about 200 bytes of code from idata.c
> (libsdcc.lib) that initializes your global/static variables. If you are
> sure not to require that functionality (e.g., because you set up your
> globals in main and do not use static variables), you can define
>
> void
> _sdcc_gsinit_startup(void) {
> __asm pagesel _main __endasm;
> __asm goto _main __endasm;
> }
>
> void
> main(void)
> {
> /* your code */
> while (1);
> }
>
> see attached sample blinky14.c
>
> The pic12f675 only defines the SFR locations (linker symbols) and
> contributes no code at all.
>
> Good luck,
> Raphael
>
>
> ------------------------------------------------------------------------
>
> ------------------------------------------------------------------------------
> 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
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
------------------------------------------------------------------------------
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user