zephyr/samples/drivers/ipm/ipm_esp32
Marek Matej a8ab8b49f2 samples: drivers: IPM fixes
Updates and fixes to support IPM sample on ESP32:

- fix IPM sample code for APPCPU and PROCPU
- align with memory layout, add flash awarenes
- shell commands to stop/start APPCPU
- reorganize overlays

Signed-off-by: Marek Matej <marek.matej@espressif.com>
2024-11-08 11:36:09 -06:00
..
boards
remote
socs
src
CMakeLists.txt
Kconfig.sysbuild
README.rst
prj.conf
sample.yaml
sysbuild.cmake

README.rst

.. zephyr:code-sample:: ipm-esp32
   :name: IPM on ESP32
   :relevant-api: ipm_interface

   Implement inter-processor mailbox (IPM) between ESP32 APP and PRO CPUs.

Overview
********
This simple example can be used with multicore ESP32 Soc, and demonstrates
the software intercore messaging mechanism to be used in AMP applications.

ESP32 has two CPU named APP and PRO, in this simple example PRO send a
message to the APP using the IPM driver, and waits for the APP response
message and prints its contents on console.

ESP32 intercore messaging has up two four channels, the 0 and 1 are
reserved for BT and WIFI messages, and channels 2 and 3 is free to
any application, each channel supports up to 64 bytes of data per
message, so high level protocol is responsible to fragment larger
messages in chunks of 64 bytes.

Building and Running the Zephyr Code
************************************

Build the ESP32 IPM sample code as follows:

.. zephyr-app-commands::
   :zephyr-app: samples/drivers/ipm/ipm_esp32
   :board: esp32s3_devkitm/esp32s3/procpu
   :west-args: --sysbuild
   :goals: build
   :compact:

Sample Output
*************

To check the output of this sample, run ``west espressif monitor`` or any other serial
console program (e.g., minicom, putty, screen, etc).

.. code-block:: console

   *** Booting Zephyr OS build v4.0.0-rc2-61-ga24efebe15e2 ***
   PRO_CPU is sending a request, waiting remote response...
   PRO_CPU received a message from APP_CPU : APP_CPU uptime ticks 502
   PRO_CPU is sending a request, waiting remote response...
   PRO_CPU received a message from APP_CPU : APP_CPU uptime ticks 10502
   PRO_CPU is sending a request, waiting remote response...
   PRO_CPU received a message from APP_CPU : APP_CPU uptime ticks 20503
   PRO_CPU is sending a request, waiting remote response...
   PRO_CPU received a message from APP_CPU : APP_CPU uptime ticks 30504
   PRO_CPU is sending a request, waiting remote response...
   PRO_CPU received a message from APP_CPU : APP_CPU uptime ticks 40505
   PRO_CPU is sending a request, waiting remote response...
   PRO_CPU received a message from APP_CPU : APP_CPU uptime ticks 50506
   PRO_CPU is sending a request, waiting remote response...
   PRO_CPU received a message from APP_CPU : APP_CPU uptime ticks 60507
   PRO_CPU is sending a request, waiting remote response...
   PRO_CPU received a message from APP_CPU : APP_CPU uptime ticks 70508