FAQ

FAQ

How to use Semihost to communicate with a target system in Debug mode in the case that no UART device is provided or no UART circuit is planned?   Issue Date:2015-12-21

If the user needs to debug using UART, but no input/output device is connected or no UART circuit is planned, the user can utilize Semihost to communicate with a target system. For the method of setting Semihost in the Keil RVMDK and IAR EWARM development environment, refer to the following steps:

 

  • Keil RVMDK: The user can enter DEBUG_ENABLE_SEMIHOST in the Define field on the C/C++ and Asm page through Project→Options for Target, as shown below:





    After rebuilding and entering Debug mode, the user can open a preset window to monitor through the View→Serial Windows→UART #1 command or by clicking an icon on the toolbar, as shown below:

  • IAR EWARM:
    First, the user needs to open the Library Configuration page through the Project→Options→General Options command, and then select Semihosted in the Library low-level interface implementation section, and select Via semihosting in the stdout/stderr section, as shown below:

     

    Then, open the Preprocessor page through Project→Options→C/C++ Compiler, and enter DEBUG_ENABLE_SEMIHOST in the Defined symbols field, as shown below: 

     

    Similarly, the user can open the Preprocessor page through Project→Options→Assembler, and enter DEBUG_ENABLE_SEMIHOST in the Defined symbols field, as shown below:

     

    After re-executing Download and Debug to enter Debug mode, the user can open the window to monitor through the View→Terminal I/O command, as shown below:

     
Products: Microcontrollers ,Arm Cortex-M0 MCUs ,Arm Cortex-M4 MCUs
Applications:
Function: Peripherals,Connectivity,UART,Software and Tools,Development-Environment,IAR,Keil