| |||
| Home > Managing Projects > Project binding > Types of binding | |||
RealView Debugger binds a project using either:
When you first create a Standard, Library, or Custom project,
you must specify the toolchain to use, for example ARM-C2.
To do this, use the Toolchain drop-down list box on the Create New
Project dialog box (see, for example, Steps for creating a Standard or Library
project). This entry, in the project settings
file, determines the default binding for the project.
RealView Debugger populates this setting automatically when it creates an in-memory auto-project for an image that you load directly to a debug target.
If you connect to a debug target and open a user-defined project, RealView Debugger attempts to bind the project by default:
If the connection does not correspond to the processor family for the project, the project opens but it does not bind. If the project does not bind, the image name is not registered. This means that RealView Debugger cannot autoload the image on a GO or RELOAD command.
See SETTINGS group for more details.
If the connection corresponds to the processor family and there is no project already bound to the connection, RealView Debugger binds the project by default.
If the connection corresponds to the processor family and there is a project already bound to the connection by default, RealView Debugger gives you the option to unbind the active project and bind the new project.
If you choose not to bind the new project, the project opens but is unbound.
If the connection corresponds to the processor family and there is a project already autobound to the connection, RealView Debugger displays a warning that it cannot complete the binding. This is because default binding cannot displace an autobound project. The project opens but is unbound. See Autobinding for details about autobound projects.
This behavior means that you can always open a user-defined project, and make changes to the project settings file, even if your connection is not a suitable debug target for that project.
See Effects of binding and Effects of unbinding for more details on changing binding.
You can specify that a project can only bind to a specific
processor or device, by name, using the Specific_device entry
in the project settings file, shown in Figure 12.17. You can do this when you first create
the project or update this setting later.
This close coupling of project and target processor is called specific device binding and forces RealView Debugger to use autobinding when the project opens. If autobound, the project only binds to the named device. If this is not set, RealView Debugger uses default binding to determine project binding.
The value of the specific device binding relates to the configured
device names in the RVConfig dialog box associated with the connection.
These entries are shown as the target processors in the Connection
Control window. The default processor is ARM7TDMI, but
you can change this to a different name if required. See the RealView
ICE Micro Edition v1.1 User Guide for more details on
the RVConfig dialog box.
You cannot force an autobound project to bind to a device
that does not match. You must change the Specific_device setting
first, see Adding Specific_device settings for
details. It is not necessary to open the project before rebinding.
See Forcing binding for details
on defining binding behavior.
Autobinding gives a project priority over other projects when it opens to a connection:
If the connection does not correspond to the named device, the project opens but it does not bind.
If the connection corresponds to the named device and there is no project already bound to the connection, RealView Debugger autobinds the project.
If the connection corresponds to the named device and there is a project already bound to the connection, using autobinding or default binding, RealView Debugger unbinds the active project and autobinds the new project. There is no warning.
If the connection partially corresponds to the named
device, for example the Specific_device entry
is set to ARM, and there is a project already autobound
to the connection, for example where the Specific_device entry
is set to ARM7, RealView Debugger unbinds the active
project and autobinds the new project. There is no warning.
If you open a user-defined project that has no Specific_device entry
specified and there is a project already autobound to the connection, RealView Debugger displays
a warning that it cannot complete the binding. This is because default
binding cannot displace an autobound project.
Autobound projects might not get priority:
if they are subprojects in a Container project, see Working with Container projects for details
if they are opened by the workspace, see Projects in workspaces for details.
The Specific_device setting defines a device
to which a project can autobind. By default, this is ARM7TDMI_0.
To specify autobinding:
Select Project → Project Properties... to display the Project Properties window.
Select the *PROJECT group in
the List of Entries pane.
Right-click on the Specific_device setting
in the Settings Values pane and select Edit Value from
the context menu.
Enter the specific device name, ARM7TDMI_0,
then press Enter to complete the entry. Alternatively, you can specify
a family name. For example, if you have renamed the processor to ARM7TDMI you
the family name is ARM7.
A new setting is created, for example *Specific_device ARM7TDMI_0.
Each device you add creates another entry.
Select File → Save Changes to save your changes. The makefiles for the project are regenerated.
Select File → Close Window.
If the project is already bound then changing the Specific_device settings
value does not reset the binding. RealView Debugger only attempts to autobind
when you open a project. Therefore, after changing the Specific_device settings
value either:
reopen the project to see the change
use the Project Control dialog box to rebind the project (see Forcing binding for details).
To restore the setting, right-click on the Specific_device setting
in the Settings Values pane and select Delete from
the context menu.
When setting a Specific_device value, names
must match device names listed in the RVConfig dialog box for the
connection.