The ARM Tool Reconfiguration Utility (reconfig)
-----------------------------------------------


About reconfig
..............

This utility allows the user to reconfigure the default settings of the ARM 
tools. This is required when the current settings do not reflect the system in 
which you're using them. Settings include things like Serial line Baud Rates 
for the ARM Symbolic Debugger and the size (in bits) of the Program Counter for 
code produced by the ARM C Compiler.

<reconfig> can be run in a command line mode, silently, or as a full-screen 
option editor.

The tool settings are stored in the executable file for each tool. This utility 
patches in any changes directly.


Tool Reconfiguration
....................

The <reconfig> utility can configure four tools. These tools, and their 
options, are described in the following sections.  For all of these tools, the 
strings that should  be used in the <command line> mode are shown in brackets.


ARM C Compiler (armcc)

Eight options are available. These, and their possible values, are shown below:

    Option                                Possible Values
    
    Bytesex                               host        (host)
    (bytesex)                             little      (little)
                                          big         (big)

    Program Counter                       26bit       (26bit)
    (pc)                                  32bit       (32bit)

    FP Emulation                          fpe2        (fpe2)
    (fpe)                                 fpe3        (fpe3)

    Stack limit check                     off         (off)
    (stacklimitcheck)                     on          (on)

    Reentrant code                        yes         (yes)
    (reentrantcode)                       no          (no)

    FP register args                      yes         (yes)
    (fpregargs)                           no          (no)

    Unaligned word load/stores            yes         (yes)
    (unalignedwordloadstores)             no          (no)

    Old format asd tables                 yes         (yes)
    (oldformatasdtables)                  no          (no)

    Max instrs / intliteral               default, 1<=user_value

    Max regs per LDM/STM                  default, 3<=user_value<=16


ARM Assembler (armasm)

Six options are available. These, and their possible values, are shown below:

    Option                                Possible Values
    
    Bytesex                               host        (host)
    (bytesex)                             little      (little)
                                          big         (big)

    Program Counter                       26bit       (26bit)
    (pc)                                  32bit       (32bit)

    Stack limit check                     off         (off)
    (stacklimitcheck)                     on          (on)

    Width    of page                      default     (default)
    (widthofpage)                         0 <<user_value> < 255

    Lines                                 default     (default)
    (lines)                               0 <<user_value> < 255

    CPU                                   ARM6        (arm6)
    (cpu)                                 ARM7        (arm7)
                                          ARM7m       (arm7m)


ARM Symbolic Debugger (armsd)

Two or three options are available. The third option is not always 
reconfigurable. This depends on the linked objects when the executable was 
made.  The options, and their possible values, are shown below:

    Option                                Possible Values
    
    Bytesex                               little      (little)
    (bytesex)                             big         (big)
                                          dontcare    (dontcare) *

    Linespeed                             9600        (9600)
    (linespeed)                           19200       (19200)
                                          38400       (38400)

    Default tool                          armsd       (armsd)
    (defaulttool)                         pisd        (pisd)

* dontcare means that <armsd> can debug and emulate images which have the same 
byte order as thatwith which the ARMulator component of armsd is configured.  
When <armsd> is delivered, this is the host byte order (little endian for 
386/DOS, big endian for SPARC/SunOS) but, of course, the user can configure 
<armsd> with the other default byte order if desired, and this in turn can be 
overridden on the <armsd> command line.


ARM Linker (armlink)

Four options are available.  All of the options refer to attempts to match an 
unreferenced symbol with some derivative of it.  These, and their possible 
values are shown below:

    Option                                Possible Values
    
    Match  _sym to sym                    no          (no)
    (_s-to-s)                             yes         (yes)

     sym to _sym                          no          (no)
    (s-to-_s)                             yes         (yes)

     Mod_Sym to Mod.Sym                   no          (no)
    (m_s-to-m.s)                          yes         (yes)

     sym__type to sym                     no          (no)
    (s__t-to-s)                           yes         (yes)


Using reconfig
..............

<reconfig> may be used in two modes. The first is <on-screen> mode, and is used 
when no parameters are supplied on the command line. The second is <command-line> 
mode: Here, the options are set with command line arguments, and the changes 
are made silently unless errors occur.

In both modes, you must change directories so that the tools you want to 
reconfigure are in your current directory. Run <reconfig> from there.


On-Screen Mode

Run <reconfig> simply by typing :

    reconfig

Each tool is checked for existance and consistency. If any problems occur, then 
these are displayed on the screen. See the section titled "<Reconfiguration 
Errors>" for more information. 

A menu is displayed, and the select bar can be moved with TAB, SPACE and the 
ARROW KEYS. Move the select bar onto the tool you wish to reconfigure, then 
press ENTER.

The current settings for the selected tool are displayed, along with the list 
of possible settings for each option.  New settings can be assigned to the 
options for any tools that  were found and checked out OK. Use ENTER to assign 
the currently highlighted setting to the  selected option. If a <user_value> is 
to be entered, then you type it in after pressing ENTER.  When moving between 
options, the current setting is highlighted first by default. 

If a tool did not check out OK, then the possible options and settings are 
displayed, but these cannot be changed.

Type <q> to go back to the Main Menu. The other tools can be changed in the 
same way. When you have reconfigured all that you require, exit from the Main 
Menu using the menu option to quit, or just type <q>. You will be asked if you 
wish to save the current configuration. The default is <n> - not to save them 
so press <y>  if you do wish to save the new settings, followed by RETURN. The 
program will tell you whether it saved the settings or not.  Press ENTER at the 
prompt and you're finished.

NOTE: If you are using anything other than a PC under DOS to run <reconfig>, 
then in order to use the <on-screen> mode, ANSI escape sequences generated by 
<reconfig> must be interpreted correctly by the Operating System or shell in 
which you are running.  If this is not the case, then the screen layout will be 
wrong and the <command-line> mode should be used instead (see next section).


Command-Line Mode

The command line syntax is:

    reconfig <toolname> [ <option1>=<value1> [ <option2>=<value2> ] ... ]

The <option> and <value> separator is either <whitespace> or an <equals> sign, 
these may be mixed on the same line.

If only the <toolname> is given, then the current settings are displayed. 
Otherwise, the specified values are assigned to the specified options.

Each <option> and <value> is matched against those permitted for that tool. 
Only the number of characters given on the commandline are matched, so they 
must be unambiguous   (if not, then the first match is assumed). The strings 
that should be typed for the options and values are given in the section titled 
"<Tool Reconfiguration>".


Examples:

To set the <armcc> tool to use a 32 bit Program Counter and to refrain from 
checking the stack, the following lines will all work:

    reconfig armcc pc=32bit stackcheck=no
    reconfig armcc pc 32bit stackcheck no
    reconfig armcc pc=32bit stackcheck no
    reconfig armcc pc=32 stack=no
    reconfig armcc p=3 s=n              (minimalist approach!!)

To set the armasm Program Counter to 26 bits and listing width to 80, the 
following could be used:

    reconfig armasm pc=26bit widthofpage=80
    reconfig armasm p 26 w 80


Reconfiguration Errors
......................

This section describes the errors that may be produced by <reconfig>, why they 
occur, and (where appropriate) what to check or do to correct it.

In <on-screen> mode, if the output to the screen becomes garbled or just looks 
stupid, then it's likely that the ANSI escape sequences are not being 
interpreted by your shell or Operating System correctly.  This should only 
happen on systems running anything other than DOS.  If this is the case, then 
you must change your OS/shell to one with ANSI interpretation, or simply use 
the <command-line> mode.


<filename> - File not found/writeable

This happens when a tool could not be found in the current directory, or if it 
is there, it doesn't have write permission. You must ensure that you are in the 
directory containing all of the tools that you wish to reconfigure, and that 
you have write permission for them.


<filename> - Can't find configuration block

This happens when <reconfig> has read an executable file with an ARM tool 
filename, but the Tool is either corrupt or the file is not an ARM tool at all. 
You must ensure that the tool filename executables in  the current directory 
are the ARM tools and not something else with the same name(s).


<filename> is not ARM's <toolname>

This happens when <reconfig> reads an ARM tool file executable that is not 
consistent with its filename. (eg executable file <armcc> is really <armasm>). 
You must ensure that the installed files are not renamed to other tool names. 
It would be best to install the tools again.


<toolname> - invalid tool name

This happens in command-line mode when the <toolname> specified on the command 
line is not an ARM tool.  Check the spelling.

<function()> : Corrupted file

This will only happen if a tool executable has become corrupted. Re-install the 
tool(s) and try again. If the problem persists, then get another copy of the 
Release.


Option <'option>' cannot be reconfigured

This happens in <command-line> mode when an attempt is made to change the 
setting of an option that is not reconfigurable under the current tool 
executable configuration. This should only happen when attempting to 
reconfigure the <armsd> <: default tool> option.


Option <'option>': Value <'value>' is invalid

This happens in <command-line> mode when the specified <value> is not a valid 
setting for the option. Check that <value> and <option> are both unambiguous 
and within range for user-values.


Option <'option'> is invalid

This happens in commandline mode when the specified <option> is not a valid one 
for the selected tool. Check that the option specified is permitted and/or 
spelled correctly.

 

 

