 |
ULINK2 User's Guide |
 |
|
|
|
|
Troubleshooting RTA
Real-Time Agent examples for several boards are located in
C:\KEIL\ARM\RT Agent\. Most examples can be run with the
µVision Simulator.
| Symptom |
Solution |
| Real-Time Agent not responding (1). |
Add RTA_Init() to the start of your
main() function if not using RTX or RL-ARM. |
| Real-Time Agent not responding (2). |
Allocating too less heap memory on the target is
a common problem. Ensure enough heap is allocated in
STARTUP.S for standard library use (plus for user heap
requirements). |
| Real-Time Agent not responding (3). |
Real-Time Agent requires two interrupt
vectors on the interrupt controller. Ensure that these
interrupts do not conflict the interrupts used in the project
(see C:\KEIL\ARM\RV31\INC\RT_Agent.c - RTA Hardware Specific
Section hardware). |
| Real-Time Agent Terminal Window gets no
data. |
Enable I/O Retargeting to use the
Real-Time Agent Terminal Window and the
RTA_printf() and RTA_scanf() macros. |
| Initial printf() / RTA_printf()
data is lost and not displayed in Real-Time Agent Terminal
Window, or is displayed corrupted. |
Initial terminal data from the target may be
lost because µVision is not ready for it. Either because it has
stale data in its buffer, or the Debugger has not been fully
initialized yet. The first case is caused by code running in
the target at the moment when a new debugging session is
started and the board RESET is issued. The second case can
happen due to a reset problem on some devices. In either case, the
problem can be resolved by executing a blank printf() /
RTA_printf(), then a sufficient delay, before executing
the first real printf() / RTA_printf(). |
| printf() / RTA_printf() data is
lost. |
Too much terminal data can overflow the
Real-Time Agent output buffers. If (for example) a
printf() is put in a tight loop of the main program
code, it will generate too much data for the Real-Time
Agent output buffers, and most data will be lost, resulting
in unintelligible data in the Real-Time Agent Terminal
Window. In this case, enabling Block on Write in the
Configuration Wizard will stop the data from being lost,
but will affect real-time performance. |
| The Real-Time Agent reports 'Buffer
Overrun in Target' or other data related errors in the µVision
Status Bar. |
This is caused because the data rate from target to host is
too high, and is much more likely when using Task Switch
Monitoring and a high target clock speed. It can be
resolved in the following ways:
-
If it occurs intermittently, increase the Output
Buffer Size parameter for the buffer used for
Real-Time Agent data travelling from target to host.
This will account for bigger peaks in the data rate.
-
Set the Max JTAG
Clock to Return Clock (RTCK) or the maximum.
This will increase the data rate between the target and
µVision.
-
Disable Task Switch Monitoring in the
Configuration Wizard.
If the problem persists, please report it.
|
|
|
|