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.