Roland Dobai 819f7a4e57 examples: Add storage example tests 5 лет назад
..
data b5ac319160 vfs: Adds example for semihosting VFS driver 6 лет назад
main 283026a761 vfs: semihost driver bugfix 5 лет назад
CMakeLists.txt b5ac319160 vfs: Adds example for semihosting VFS driver 6 лет назад
Makefile b5ac319160 vfs: Adds example for semihosting VFS driver 6 лет назад
README.md 1626f827d3 docs: Updates OpenOCD configuration file names 6 лет назад
sdkconfig.defaults b5ac319160 vfs: Adds example for semihosting VFS driver 6 лет назад
semihost_vfs_example_test.py 819f7a4e57 examples: Add storage example tests 5 лет назад

README.md

Semihosting VFS driver example

(See the README.md file in the upper level 'examples' directory for more information about examples.)

This example demonstrates how to use semihosting VFS driver with ESP32. Example does the following steps:

  1. Uses esp_vfs_semihost_register function to register exposed host directory in VFS, enabling C standard library and POSIX functions to be used.
  2. Redirects stdout from the UART to the file on the host using freopen.
  3. Prints several messages to the redirected.
  4. Switches back to UART stdout using freopen.
  5. Opens text file on the host.
  6. Reads the file and prints its content on stdout.

How to use example

Hardware and tools required

This example does not require any special hardware, and can be run on any common development board. This example requires OpenOCD. NOTE: In order to run this example you need OpenOCD version v0.10.0-esp32-20190313 or later.

Run OpenOCD using command:

bin/openocd -s share/openocd/scripts -c 'set ESP_SEMIHOST_BASEDIR '$IDF_PATH/examples/storage/semihost_vfs/data -f board/esp32-wrover-kit-3.3v.cfg

This command also configures OpenOCD to expose example project data subdirectory to the target's semihosting VFS driver.

Build and flash

Replace PORT with serial port name:

idf.py -p PORT flash monitor

(To exit the serial monitor, type Ctrl-].)

See the Getting Started Guide for full steps to configure and use ESP-IDF to build projects.

Example output

There are two types of outputs produced by example:

  1. File esp32_stdout.txt in the host directory mounted to the target:

    W (274) example: Switched to semihosted stdout
    Semihosted stdout write 0
    Semihosted stdout write 1
    Semihosted stdout write 2
    ...
    Semihosted stdout write 98
    Semihosted stdout write 99
    W (274) example: Switch to UART stdout
    
  2. On the boards console:

    W (274) example: Switch to semihosted stdout
    W (274) example: Switched back to UART stdout
    I (274) example: Wrote 2798 bytes
    ====================== HOST DATA START =========================
    The following are the graphical (non-control) characters defined by
    ISO 8859-1 (1987).  Descriptions in words aren't all that helpful,
    but they're the best we can do in text.  A graphics file illustrating
    the character set should be available from the same archive as this
    file.
    
    Hex Description                 Hex Description
    
    20  SPACE
    ...
    7D  RIGHT CURLY BRACKET         FD  SMALL LETTER Y WITH ACUTE
    7E  TILDE                       FE  SMALL LETTER THORN (Icelandic)
                                FF  SMALL LETTER Y WITH DIAERESIS
    ====================== HOST DATA END =========================
    I (694) example: Read 6121 bytes