Documentation/python: Add entries for Python on ESP32-S3

This commit adds the entries in the documentation about running
Python on ESP32-S3.

Signed-off-by: Tiago Medicci Serrano <tiago.medicci@espressif.com>
This commit is contained in:
Tiago Medicci Serrano 2025-02-20 11:16:37 -03:00 committed by Alan C. Assis
parent 9990695afd
commit 597b7efffc
2 changed files with 44 additions and 8 deletions

View file

@ -16,12 +16,15 @@ It is written in C and is the most widely used Python interpreter.
How Does it Work?
=================
1. Python for NuttX target initially the ``rv-virt`` (RISC-V QEMU) board.
1. Python for NuttX runs on RISC-V QEMU (emulated) and on Espressif's ESP32-S3.
2. Python modules are stored in `pyc <https://docs.python.org/3/glossary.html#term-bytecode>`_ (byte-code format) and are loaded from a ROMFS image at startup.
3. The Python wrapper application on NuttX mounts the ROMFS partition which contains the Python modules and sets the required environment variables (``PYTHONHOME`` and ``PYTHON_BASIC_REPL``) automatically.
Building Python on NuttX
========================
Building and Running Python on NuttX
====================================
``rv-virt`` (RISC-V QEMU)
----------------------------
Use the ``rv-virt:python`` config to build Python for NuttX. Note that the CMake scripts don't work for this configuration. For now, please use the makefile build instead:
@ -33,10 +36,7 @@ Use the ``rv-virt:python`` config to build Python for NuttX. Note that the CMake
$ make -j$(nproc)
$ ls -l nuttx
This will generate a ``nutxx`` binary. This file can be run using the RISC-V QEMU.
Try Python in NSH
=================
This will generate a ``nuttx`` binary. This file can be run using the RISC-V QEMU.
Before running the RISC-V QEMU, create a raw disk image with the following command:
@ -72,9 +72,35 @@ Then, run RISC-V QEMU with the following command:
>>>
Demo
----
^^^^
Check the following `asciinema <https://asciinema.org/>`_ demo to see how to run Python on NuttX. You can copy and paste the commands from the demo to try it yourself.
.. image:: https://asciinema.org/a/bYYy1fyIOQ3hOY4lJ7L3WFcNb.svg
:target: https://asciinema.org/a/bYYy1fyIOQ3hOY4lJ7L3WFcNb
ESP32-S3
--------
For this example, we will use the ESP32-S3 board. Use the ``esp32s3-devkit:python`` config to build
Python for NuttX. Note that this defconfig uses a board with the ESP32-S3-WROOM-2 module with 32MiB
of flash and 8MiB of PSRAM.
Build and flash the ESP32-S3 board with the following commands:
.. code:: console
$ cd nuttx
$ make distclean
$ ./tools/configure.sh esp32s3-devkit:python
$ make flash ESPTOOL_BINDIR=./ ESPTOOL_PORT=/dev/ttyUSB0 -s -j$(nproc)
To run Python on ESP32-S3, just open a serial terminal and connect to the ESP32-S3 board.
You will see the NuttShell (NSH) prompt. Run the following commands:
.. code:: console
nsh> python
Python 3.13.0 (main, Dec 4 2024, 17:00:42) [GCC 13.2.0] on nuttx
Type "help", "copyright", "credits" or "license" for more information.
>>>

View file

@ -481,6 +481,16 @@ To test it, just execute the ``pwm`` application::
pwm_main: starting output with frequency: 10000 duty: 00008000
pwm_main: stopping output
python
------
This configuration enables the Python for ESP32-S3.
Please refer to the :doc:`Python Interpreter </applications/interpreters/python/index>` page.
.. warning:: Note that this defconfig uses a board with the ESP32-S3-WROOM-2 module with 32MiB
of flash and 8MiB of PSRAM. Running Python on ESP32-S3 requires at least 16MiB of flash and
8MiB of PSRAM.
qemu_debug
----------