Anthony,
You can change _gptrget.c and _gprtput.c to make it
select the bank. Then use a generic pointer to your
variables. As long as these functions are in the common
bank it should work.
IIRC there is no support for direct access yet (even
though that would also use _gptrget/put).
Directly changing FMAP around the access is fastest
b.t.w.
Maarten
> For MCS51, I was wondering if there is anyway to specify a __code
> variable that is in non-default code bank. Here is what I could like to
> do...
>
> __code __at (0x1FFF8) u8_t ieee_flash_addr[8];
>
> The flash programmer will initialize address 0x1FFF8 - 0x1FFFF to the
> IEEE address for this chip and this will be retained through code
> reprogramming.
>
> Currently I have to directly twiddle the FMAP bank control register:
>
> u8_t orig_fmap;
> u8_t ii;
> /* Copy IEEE/Serialization Address from 0x1FFF8 (highest bytes in
> BANK3) */
> orig_fmap = FMAP;
> FMAP=3;
> for (ii=0; ii<8; ii++) { mac_address[ii] = flash_ieee_addr[ii]; }
> FMAP=orig_fmap;
>
> It would be cleaner if the compiler could take care of the FMAP change.
> Of course this only works in nonbanked code.
>
> thanks!
>
>
> a*
------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user