Difference between revisions of "Semihosting"

From SEGGER Wiki
Jump to: navigation, search
(Created page with "__TOC__ Semihosting is a mechanism for ARM based target devices to provide a way to communicate with a host system to allow different operations to be performed. Such operati...")
 
Line 11: Line 11:
 
The example project will open a file on the host system and write a string to it.
 
The example project will open a file on the host system and write a string to it.
 
Make sure the file path is existing otherwise the project will not run. You can of course change the path by simply editing variable pFilename and rebuild it with Embedded Studio.
 
Make sure the file path is existing otherwise the project will not run. You can of course change the path by simply editing variable pFilename and rebuild it with Embedded Studio.
  +
  +
Prerequisites are:
  +
* Ozone V2.62 or later
  +
* Embedded Studio V4.16 or later
  +
* Cortex-M Trace Reference Board (ST STM32F407VE)
  +
* J-Link V10 or later
   
 
==Semihosting with Embedded Studio==
 
==Semihosting with Embedded Studio==
Line 21: Line 27:
   
 
Prerequisites are:
 
Prerequisites are:
* Embedded Stduo V4.16 or later
+
* Embedded Studio V4.16 or later
 
* Cortex-M Trace Reference Board (ST STM32F407VE)
 
* Cortex-M Trace Reference Board (ST STM32F407VE)
 
* J-Link V10 or later
 
* J-Link V10 or later

Revision as of 10:47, 9 April 2019

Semihosting is a mechanism for ARM based target devices to provide a way to communicate with a host system to allow different operations to be performed. Such operations can be sending and receiving data from and to the host system and file I/O operations. These can also be automated and used for e.g. unit testing.

Semihosting with Ozone

Ozone supports the standard Arm implementation for semihosting. So the semihosting handling needs to be done completely in the target application.

An example implementation can be found in the following example project: Semihosting Ozone

The example project will open a file on the host system and write a string to it. Make sure the file path is existing otherwise the project will not run. You can of course change the path by simply editing variable pFilename and rebuild it with Embedded Studio.

Prerequisites are:

  • Ozone V2.62 or later
  • Embedded Studio V4.16 or later
  • Cortex-M Trace Reference Board (ST STM32F407VE)
  • J-Link V10 or later

Semihosting with Embedded Studio

The implementation of Semihosting in Embedded Studio is straight forward. Standard library functions for fopen, fwrite, fread etc. are implemented and just need to be called. It is recommended to use the project wizard when creating a new project so all default settings are set correctly.

The following example project opens a file on your host system and writes a string into it triggered by your target device: Semihosting Embedded Studio

Make sure the file path is existing otherwise the project will not run. You can of course change the path by simply editing variable pFilename and rebuild it with Embedded Studio.

Prerequisites are:

  • Embedded Studio V4.16 or later
  • Cortex-M Trace Reference Board (ST STM32F407VE)
  • J-Link V10 or later


Semihosting with GDB

Semihosting with EWARM