> Am 19.02.2018 um 10:50 schrieb Maarten Brock:
> > 
> > Do I understand correctly that your STM8 has code memory 
> above 0xFFFF? 
> > So the problem is that SDCC only generates 16 bit jump/call 
> > instructions and thus cannot reach 0x10000 and above, but 
> it can 'overflow' into that area.
> > 
> > Does the STM8 have separate 24 bit jump/call instructions?
> 
> Yes. They are mostly ok, but function calls get awkward. 
> Where it gets really awkward is data above 64K.
> 
> > Or is it a
> > special mode like on the DS390? Or is one supposed to use 
> bank switching?
> > And are there also STM8 versions with only memory below 64k?
> 
> Only very few STM8 have memory above 64K.

All STM8 parts with more than 32 kB flash currently cannot be used to their
full potential with SDCC.

Looking at the ST website, at the moment this means 58 of the 138 variants.
Including the interesting ones of course. ;-)

A while ago I did some experiments (sadly not completed yet) by adding a 24
bit mode to the SDCC STM8 port. Instead of CALL/RET, CALLF/RETF are emitted
and the stack calculations need to cope with 3 instead of 2 bytes for the
return. For the constants section I cheated a bit and made an option to
place this segment before the code segment, so for most (of my) programs  no
further changes would be needed.

 Eric

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to