Andy,

If you still have code above 0x00010000 as indicated by 
the second record you mention, you either have placed 
code above that address yourself with a option for the 
linker or your program is not "a small app".

Maarten

> Thanks a lot Maarten,
> 
> I've made sense of the extended address record. However one thing still
> confuses me. If I build a small app that all fits in the common area,
> the output.ihx still contains two extended address records, along the
> lines of:-
> 
> :020000040000FA     // I guess this means bank0?
> ..
>   <some data records>
> ..
> :020000040001F9     // I guess this means bank1?
> ..
>   <more data records>
> ..
> :0400000500000000F7
> :00000001FF
> 
> I guess the linker must think the banked area starts at a lower address.
> How do I set the banked area? 
> (or have I misunderstood completely?!)
> 
> Thanks in advance,
> Andy
> 
> 
> 
> 
> > 
> > Message: 4
> > Date: Fri, 23 Jan 2009 20:28:49 +0100
> > From: "Maarten Brock" <sourceforge.br...@dse.nl>
> > Subject: Re: [Sdcc-user] Help with code-banking
> > To: sdcc-user@lists.sourceforge.net
> > Message-ID: <497a2881.5191.28cf6...@sourceforge.brock.dse.nl>
> > Content-Type: text/plain; charset=US-ASCII
> > 
> > Andy,
> > 
> > SDCC generates a so-called extended intel-hex file. This 
> > also contains records to indicate the start of a new 
> > segment/bank. If your bootloader or whatever you use to 
> > program the chip(s) does not understand extended hex-
> > files you can use srecord to split the file into several 
> > hex-files for the banks.
> > 
> > HTH,
> > Maarten
> > 
> > > I'm evaluating SDCC for a project, which needs code-banking 
> > (we estimate
> > > code size >64k). Are there any examples of how to do code-banking? I
> > > have seen and followed the instructions (see below), but I 
> > think there
> > > is one thing I still need to know.
> > > 
> > > On our hardware, the common area is 0x4000-0x7fff, with banks from
> > > 0x8000-0xFFFF.
> > > 
> > > The keil compiler outputs a separate .ihx file for each 
> > bank. However I
> > > can't find how to do that with SDCC. I can build an image using the
> > > script below, and the .map file shows everything at the right place
> > > (BANK1 and BANK2 look correctly overlaid). However I don't see how a
> > > single .ihx file can work. Is there a way to produce many 
> > .ihx files, or
> > > some way to produce an output that describes >64k code?
> > > 
> > > Can someone help me in the right direction?
> > > Thanks,
> > > Andy
> > > 
> > > 
> > > 
> > > COMPILE:-
> > > sdcc -c main.c
> > > sdcc -c bank1stuff.c  (this contains pragma codeseg BANK1)
> > > sdcc -c bank2stuff.c  (this contains pragma codeseg BANK2)
> > > asx8051 mytrampoline.asm
> > > 
> > > LINK:-
> > > sdcc --code-loc 0x4000 -Wl-bBANK1=0x18000 -Wl-bBANK2=0x28000 -Wl-r
> > > $(OBJS)
> > > 
> > > 
> 
> ------------------------------------------------------------------------------
> This SF.net email is sponsored by:
> SourcForge Community
> SourceForge wants to tell your story.
> http://p.sf.net/sfu/sf-spreadtheword
> _______________________________________________
> Sdcc-user mailing list
> Sdcc-user@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/sdcc-user
> 



------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to