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