ARM LM3S Runtimes
=================

Runtimes Supported
------------------

* ZFP

Targets Supported
-----------------

* Texas Instruments Stellaris LM3S811 ARM Cortex-M3

System Clocks
-------------

Clocks Configuration
,,,,,,,,,,,,,,,,,,,,

The system clock source is the main phase-locked loop (PLL) and is
configured by the Ada code in procedure Setup_PLL. The clock is configured
there for 50MHz, the maximum per the TI datasheet. The procedure Setup_PLL
is called by the startup routines written in assembly language, described
below.

Startup Code
------------

There are two assembly language files for the startup code, one each for
executing from RAM or ROM. These are start-ram.S and start-rom.S
respectively.

Interrupts
----------

Not Applicable.

Memory Layout
-------------

The memory layout is controlled by linker scripts selected by a scenario
variable named "Loader". This scenario variable is declared in an xml file
(runtime.xml) read by gprbuild automatically and used to define linker
switches. These switches specify the linker script corresponding to the
scenario value, as follows:

ROM  :
  lm3s-rom.ld
RAM  :
  lm3s-ram.ld
USER :
  not defined

The default is ROM.

You can modify these scripts as required. Alternatively, these scripts can
be overridden at link time using the LDSCRIPT environment variable.

Resources Used
--------------

The runtime library provides a minimal version of package Ada.Text_IO
supporting character- and string-based input and output routines. The bodies
of the Ada.Text_IO routines call through to a device-specific I/O package
named System.Text_IO. See gnat/s-textio.adb for the implementation. I/O goes
through UART0. You can change the baud rate etc. in that package. By default
the settings are 115_200, no start bits, eight data bits, one stop bit.
