Keil Logo

Introduction Troubleshooting

If you encounter any problems integrating the Real-Time Agent, working examples for several boards can be found in C:\KEIL\ARM\RT Agent\. Most examples have versions that can be run in the KEIL simulator if you do not have hardware yet.

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). Not allocating enough heap memory on the target is a common problem. Make sure enough heap is allocated in STARTUP.S for standard library use (plus any extra for user heap requirements).
Real-Time Agent not responding (3). The Real-Time Agent requires two interrupt vectors on the interrupt controller, check that the interrupts used do not conflict with interrupts used by your project (see C:\KEIL\ARM\RV31\INC\RT_Agent.c - RTA Hardware Specific Section, for the interrupt vectors used on your hardware).
Real-Time Agent Terminal Window gets no data. To use the Real-Time Agent Terminal Window and the RTA_printf() and RTA_scanf() macros, I/O Retargeting must be enabled.
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 it's buffer, or the debugger has not yet initialized fully. The first case is cause by code running in the target at the moment a new debug session is started and the board reset is issued. The second case can be 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 available. 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.
  Arm logo
Important information

This site uses cookies to store information on your computer. By continuing to use our site, you consent to our cookies.

Change Settings

Privacy Policy Update

Arm’s Privacy Policy has been updated. By continuing to use our site, you consent to Arm’s Privacy Policy. Please review our Privacy Policy to learn more about our collection, use and transfers
of your data.