[fpc-devel] Stellaris Update

Geoffrey Barton mrb at periphon.net
Tue Aug 16 12:36:42 CEST 2011


On 16 Aug 2011, at 11:16, John Clymer wrote:

> Stellaris ALWAYS has the Code starting at $0000:0000.
> 
> STM32's do something odd where the FLASH starts at $0800:0000, and the memory between $0000:0000 and $07FF:FFFF is mappable to either the FLASH or the built-in boot loader.  (Which throws a kink in the works.)
> 
> But, as far as the point of catching the 90% of possible uses - one could drop down to strictly {$FLASH_SIZE} and {$SRAM_SIZE}.  
> 
> The other option (unless one wants a gazzillion items on the case() statements in t_embed.pas) - is to set them extremely large so they don't get exceeded.  However, the danger in that is if someone has an 8K part, and the program ends up spilling over 8K - it won't get picked up.
> 
> Also started un-commenting some parts of rtl.cfg in the embedded folder.  Is there any desire to support more of the RTL than the minimum (i.e.  have a default stdin and stdout - so WriteLn, etc work via the serial port ?)  Or is the intent that embedded includes on the bare minimal RTL to bring the machine up ?

In my case I was trying for the bare minimum, particularly as some of the Stellaris parts have masked ROM ('Stellarisware') containing useful drivers for various functions including USB and ethernet and these are easily called from FPC. This saves flash code space.

Geoffrey

> 
> Thanks,
> 
> John
> 
> 
> From: Florian Klämpfl <florian at freepascal.org>
> To: FPC developers' list <fpc-devel at lists.freepascal.org>
> Sent: Tue, August 16, 2011 12:35:03 PM
> Subject: Re: [fpc-devel] Stellaris Update
> 
> Am 16.08.2011 05:39, schrieb John Clymer:
> > So, after some work, I have a compiler working for the LM3S8962 board (a
> > successful Blinking LED :-)  )
> > 
> > However, as I was going through some of the various datasheets, I see
> > that all the Stellaris controllers have similar memory maps.  That is:
> > 
> > A) Each type of device has a specific spot in the memory map to sit at.
> > B) If a device has less or no device of a given type, that memory map is
> > "Reserved"
> > C) The SRAM and FLASH memories always start at the same address
> 
> So why would the directives be needed?
> 
> > 
> > As such, I'm leaning towards:
> > 
> > {$FLASH_START xxxxx}
> > {$FLASH_SIZE xxxxx }
> > {$SRAM_START xxxxx }
> > {$SRAM_SIZE xxxxx }
> > 
> > By doing this, only 1 config will work for all stellaris parts (as was
> > originally laid out in the cpuinfo file.)
> 
> What config? Memory layout in the compiler? Even without the directives
> mentioned above, mulitple stellaris controllers can share the same
> memory layout config in t_embedded?
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel
> _______________________________________________
> fpc-devel maillist  -  fpc-devel at lists.freepascal.org
> http://lists.freepascal.org/mailman/listinfo/fpc-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-devel/attachments/20110816/37a9a366/attachment.html>


More information about the fpc-devel mailing list