Keil Logo

Introduction Configuring the Real-Time Agent

The Real-Time Agent contains a Configuration Wizard to make it easy to compile with different features and for different hardware platforms. Access the Configuration Wizard by opening the RTA_Config.c file in µVision and clicking the Configuration Wizard tab to display the following:

Use: ULINK ARM Debugger

Click the Expand All button to view and select the following options:

Option Description
Real-Time Agent Enables or disables the Real-Time Agent. If it is disabled, calls to it's functions are replaced by NOPs using the MDK-ARM linker __weak link functionality.
Hardware Type Select the type of hardware that you are using. This step is required for projects not using RTX or RL-ARM.

If your hardware is not available, you have 2 options:
  • If the ARM Debug Communication Channel interrupts are connected to your target device's interrupt controller, you can implement your own hardware macros (Interfacing Custom Hardware).
  • If the ARM Debug Communication Channel interrupts are not connected to your target device's interrupt controller, you can use the Real-Time Agent in polled mode.
Output Buffer Size (bytes) Size of the buffer used for Real-Time Agent data traveling from target to host. Increase this for slower JTAG connections, or if data is being lost due to buffer overruns in the target.
Invalid Memory Pattern Sets the memory pattern that is returned to µVision when accessing invalid memory locations.
Enable Terminal Emulation Enables or disables the terminal emulation. Disabling this option saves code and memory space when terminal emulation is not required.
Echo Characters Automatically If enabled, characters typed in the Real-Time Agent Terminal Window in µVision are automatically echoed back.

Note: Standard library functions, such as scanf(), require this option to be set.
Block on Write If enabled, calling RTA_TermPutChar() will block if there is insufficient buffer space to send the character immediately, so terminal data will not be lost.

If disabled, data will be discarded when calling RTA_TermPutChar() when there is insufficient buffer space. This improves real-time performance on the target. If terminal data is being lost when Block on Write is disabled, increasing the Output Buffer Size may solve the problem.
Task Switch Monitoring (RTX_Config.c) Enables or disables RTX Kernel task switch monitoring.

Note: This option is only available for RTX or RL-ARM projects.
I/O Retargeting Enables or disables I/O Retargeting. If it is disabled, calls to printf(), scanf(), etc. are handled using the default semihosting method, rather than I/O Retargeting.

Note: This option must be set to use the RTA macros RTA_printf() and RTA_scanf().
STDIO Rerouting Select the routing of the STDIN, STDOUT and STDERR streams (i.e. printf(), scanf(), etc.).
External file operations defined If implementing a file system, you may want to use I/O Retargeting to access that file system. In this case, implement the functions __fopen, __fclose, __write, __flushbuf, __read, __setfpos, __get_flen, and enable this option. An example of this usage of I/O retargeting can be found in C:\KEIL\ARM\RT\FlashFS\Examples\File_ex1.

Note: Linking will fail if this option is enabled and the above functions are not defined.

Note

  • The 'COM Port 1' stream option in STDIO Routing expects the following functions to be defined in your code:
    • int sendchar (int ch): Write a character to the serial port.
    • int getkey (void): Get a character from the serial port (blocking).

    For an example of how to use these functions for the Keil MCB21XX development boards, see C:\KEIL\ARM\RT Agent\MCB21xx\MEASURE\SERIAL.C.

Note

  • I/O Retargeting requires a small amount of heap memory on the target (approximately 256 bytes). Make sure enough heap is allocated in STARTUP.S for standard library use.
  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.