|ARM Technical Support Knowledge Articles|
RealView Debugger allows the user to reset the target, via the Debug -> Execution Control -> Reset Target Processor option. However, in order to use this you must ensure that the appropriate "Reset Type" has been selected in the Register pane Debug tab.
The default setting for this is "nSRST+nTRST". This will drive the reset signals to the ARM core execution unit, and also the EmbeddedICE Logic that provides the on-chip debug support. If the EmbeddedICE logic is reset, then the debugger will lose control of the target, and so the behaviour will be unpredictable. You should change this setting to "nSRST" only, to only reset the ARM core, but not the debugger. You can now reset the target with the Reset Target Processor option.
You can also set this via the CLI, with the command:
Note that the reset type setting will be restored to the default (nSRST+nTRST) every time you connect to a target. To ensure that this setting is changed to nSRST only when you connect, you can run the above command automatically.
To do this, firstly disconnect from the target. In 'Connection Control' window, right-click on the target entry, and select 'Connection Properties...'.
Right-click on the 'Commands' entry in the right hand side and select 'Edit value...', and enter 'setreg @RESETOPERATION=0x0' command. Select 'File -> Save & Close', and connect to target as normal.
If you wish to stop the core at 0x0 following a reset, we recommend that you use the vector_catch setting, as per Debug -> Simple Breakpoints -> Processor Events -> reset.
Note: if this is set when you initially attempt to execute from 0x0, the debugger will not be able to execute beyond this point. You must temporarily disable and then reapply vector catch to allow this by using the following steps:
Clear the Debug -> Simple Breakpoints -> Processor Events -> reset option.
Run or step beyond 0x0.
Set Debug -> Simple Breakpoints -> Processor Events -> reset.
Carry on debug session as normal.
Now, when you select Reset Target Processor, the core will correctly stop at 0x0, after executing reset.
Article last edited on: 2008-09-09 15:47:27
Did you find this article helpful? Yes No
How can we improve this article?