MCUXpresso SDK Documentation

rpmsg_lite_str_echo_rtos_remote_core

rpmsg_lite_str_echo_rtos_remote_core#

Overview#

The Multicore RPMsg-Lite string echo project is a simple demonstration program that uses the MCUXpresso SDK software and the RPMsg-Lite library and shows how to implement the inter-core communication between cores of the multicore system. It works with Linux RPMsg master peer to transfer string content back and forth. The name service handshake is performed first to create the communication channels. Next, Linux OS waits for user input to the RPMsg virtual tty. Anything which is received is sent to Cortex-M. Cortex-M displays what is received, and echoes back the same message as an acknowledgement. The tty reader on the Linux side can get the message, and start another transaction. The demo demonstrates RPMsg’s ability to send arbitrary content back and forth. Note - The maximum message length supported by RPMsg is 496 bytes. String longer than 496 will be divided by virtual tty into several messages.

Shared memory usage#

This multicore example uses the shared memory for data exchange. The shared memory region is defined and the size can be adjustable in the linker file. The shared memory region start address and the size have to be defined in linker file for each core equally. The shared memory start address is then exported from the linker to the application.

Supported Boards#

EVK-MCIMX7ULP
Hardware requirements
  • Micro USB cable

  • MCIMX7ULP-EVK board

  • J-Link Debug Probe

  • 5V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Generate i.MX7ULP image file with imgutil and write to QSPI flash with U-Boot. For details, please refer to Getting Started with SDK v.2.0 for i.MX 7ULP Derivatives (Doc No: SDK20IMX7ULPGSUG)

  2. Connect a micro USB cable between the host PC and the J6 USB port on the target board.

  3. Open a serial terminal for A7 core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Open both serial lines provided at J6 USB port. (e.g. /dev/ttyUSB0 and /dev/ttyUSB1 on Linux or COM5 and COM6 on Windows)

  5. Flash the image for Cortex-M4 to QSPI using u-boot.

  6. Boot Linux

  7. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M4 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M4 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M4 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
EVK9-MIMX8ULP
Hardware requirements
  • Micro USB cable

  • MIMX8ULP-EVK/EVK9 board

  • J-Link Debug Probe

  • 5V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Generate i.MX8ULP image file with imx-mkimage and write to emmc/flexspi0 nor flash with U-Boot/UUU/JLink. For details, please refer to Getting Started with SDK v.2.0 for i.MX 8ULP Derivatives (Doc No: SDK20IMX8ULPGSUG)

  2. Connect a micro USB cable between the host PC and the J17 USB port on the target board.

  3. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  4. Flash the image to emmc/flexspi0 nor flash using u-boot/UUU/JLink.(Don’t use IAR/GDB to download m33 binary to SSRAM to test it)

  5. Repower on board to boot system

  6. Login to linux

  7. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
IMX952LPD5EVK-19
Hardware requirements
  • Micro USB cable

  • IMX952-EVK board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a micro USB cable between the host PC and the J31 USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW4 to power on the board

  3. Make flash.bin and burn it to imx95(refer to Getting_Started_with_MCUXpresso_SDK_for_IMX952LPD5EVK_review.pdf)

  4. Boot to linux.

  5. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
EVK-MIMX8MM
Hardware requirements
  • Micro USB cable

  • MIMX8MM6-EVK board

  • J-Link Debug Probe

  • 12V power supply

  • Personal Computer

Board settings

No special is needed.

Prepare the Demo
  1. Connect 12V power supply and J-Link Debug Probe to the board, switch SW101 to power on the board

  2. Connect a USB cable between the host PC and the J901 USB port on the target board.

  3. Open two serial terminals for A53 core and M4 core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Using U-Boot command to run the demo.bin file. For details, please refer to Getting Started with MCUXpresso SDK for i.MX 8M Mini.pdf

  5. After running the demo.bin, using the “boot” command to boot the kernel on the A core terminal;

  6. After the kernel is boot, using “root” to login.

  7. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M4 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M4 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG30 log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M4 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
Customization options
EVK-MIMX8MN
Hardware requirements
  • Micro USB cable

  • MIMX8MN6-EVK board

  • J-Link Debug Probe

  • 12V power supply

  • Personal Computer

Board settings

No special is needed.

Prepare the Demo
  1. Connect 12V power supply and J-Link Debug Probe to the board, switch SW101 to power on the board

  2. Connect a USB cable between the host PC and the J901 USB port on the target board.

  3. Open two serial terminals for A53 core and M7 core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Using U-Boot command to run the demo.bin file. For details, please refer to Getting Started with MCUXpresso SDK for i.MX 8M Nano.pdf

  5. After running the demo.bin, using the “boot” command to boot the kernel on the A core terminal;

  6. After the kernel is boot, using “root” to login.

  7. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M7 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M7 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG30 log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M7 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
Customization options
EVK-MIMX8MNDDR3L
Hardware requirements
  • Micro USB cable

  • MIMX8MN6-EVK board

  • J-Link Debug Probe

  • 12V power supply

  • Personal Computer

Board settings

No special is needed.

Prepare the Demo
  1. Connect 12V power supply and J-Link Debug Probe to the board, switch SW101 to power on the board

  2. Connect a USB cable between the host PC and the J901 USB port on the target board.

  3. Open two serial terminals for A53 core and M7 core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Using U-Boot command to run the demo.bin file. For details, please refer to Getting Started with MCUXpresso SDK for i.MX 8M Nano.pdf

  5. After running the demo.bin, using the “boot” command to boot the kernel on the A core terminal;

  6. After the kernel is boot, using “root” to login.

  7. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M7 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M7 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG30 log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M7 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
Customization options
EVK-MIMX8MP
Hardware requirements
  • Micro USB cable

  • EVK-MIMX8M Plus board

  • J-Link Debug Probe

  • 12V power supply

  • Personal Computer

Board settings

No special is needed.

Prepare the Demo
  1. Connect 12V power supply and J-Link Debug Probe to the board, switch SW3 to power on the board

  2. Connect a USB cable between the host PC and the J23 USB port on the target board.

  3. Open two serial terminals for A53 core and M7 core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Using U-Boot command to run the demo.bin file. For details, please refer to Getting Started with MCUXpresso SDK for EVK-MIMX8MP.pdf

  5. After running the demo.bin, using the “boot” command to boot the kernel on the A core terminal;

  6. After the kernel is boot, using “root” to login.

  7. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M7 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M7 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG30 log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M7 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
Customization options
EVK-MIMX8MQ
Hardware requirements
  • Micro USB cable

  • MIMX8MQ6-EVK board

  • J-Link Debug Probe

  • 12V power supply

  • Personal Computer

Board settings

No special is needed.

Prepare the Demo
  1. Connect 12V power supply and J-Link Debug Probe to the board, switch SW701 to power on the board

  2. Connect a USB cable between the host PC and the J1701 USB port on the target board.

  3. Open two serial terminals for A53 core and M4 core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control

  4. Using U-Boot command to run the demo.bin file. For details, please refer to Getting Started with MCUXpresso SDK i.MX 8M Quad.pdf

  5. After running the demo.bin, using the “boot” command to boot the kernel on the A core terminal;

  6. After the kernel is boot, using “root” to login.

  7. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M4 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M4 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG30 log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M4 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
Customization options
EVK-MIMX8ULP
Hardware requirements
  • Micro USB cable

  • MIMX8ULP-EVK/EVK9 board

  • J-Link Debug Probe

  • 5V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Generate i.MX8ULP image file with imx-mkimage and write to emmc/flexspi0 nor flash with U-Boot/UUU/JLink. For details, please refer to Getting Started with SDK v.2.0 for i.MX 8ULP Derivatives (Doc No: SDK20IMX8ULPGSUG)

  2. Connect a micro USB cable between the host PC and the J17 USB port on the target board.

  3. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  4. Flash the image to emmc/flexspi0 nor flash using u-boot/UUU/JLink.(Don’t use IAR/GDB to download m33 binary to SSRAM to test it)

  5. Repower on board to boot system

  6. Login to linux

  7. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
IMX95LPD5EVK-19
Hardware requirements
  • Micro USB cable

  • IMX95LPD5-EVK board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a micro USB cable between the host PC and the J31 USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW4 to power on the board

  3. Make flash.bin and burn it to imx95(refer to Getting_Started_with_MCUXpresso_SDK_for_IMX95LPD5EVK_review.pdf)

  4. Boot to linux.

  5. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M7 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M7 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M7 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
FRDM-IMX95
Hardware requirements
  • Micro USB cable

  • FRDM-IMX95 board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a micro USB cable between the host PC and the J31 USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW4 to power on the board

  3. Make flash.bin and burn it to imx95(refer to Getting_Started_with_MCUXpresso_SDK_for_IMX95LPD5EVK_review.pdf)

  4. Boot to linux.

  5. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M7 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M7 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M7 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
FRDM-IMX952
Hardware requirements
  • Micro USB cable

  • IMX952-EVK board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a micro USB cable between the host PC and the J31 USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW4 to power on the board

  3. Make flash.bin and burn it to imx95(refer to Getting_Started_with_MCUXpresso_SDK_for_IMX952LPD5EVK_review.pdf)

  4. Boot to linux.

  5. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
FRDM-IMX937
Hardware requirements
  • Micro USB cable

  • FRDM-IMX937 board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a micro USB cable between the host PC and the J31 USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW4 to power on the board

  3. Make flash.bin and burn it to imx95(refer to Getting_Started_with_MCUXpresso_SDK_for_IMX937LPD5EVK_review.pdf)

  4. Boot to linux.

  5. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M7 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M7 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M7 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
MCIMX93AUTO-EVK
Hardware requirements
  • USB Type-C cable

  • MCIMX93AUTO-EVK board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a USB Type-C cable between the host PC and the J26 USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW2 to power on the board

  3. Boot Linux BSP to u-boot, and load M core image from SD card to run. (Put the image into SD card before.) => load mmc 1:1 0x80000000 /rpmsg_lite_str_echo_rtos.bin => cp.b 0x80000000 0x201e0000 0x20000 => bootaux 0x1ffe0000 0

  4. Append “clk_ignore_unused” in u-boot “mmcargs” env, before booting linux.

  5. Boot to linux.

  6. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
MCIMX93-EVK
Hardware requirements
  • USB Type-C cable

  • MCIMX93-EVK board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a USB Type-C cable between the host PC and the J1401 USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW301 to power on the board

  3. Boot Linux BSP to u-boot, and load M core image from SD card to run. (Put the image into SD card before.) => load mmc 1:1 0x80000000 /rpmsg_lite_str_echo_rtos.bin => cp.b 0x80000000 0x201e0000 0x20000 => bootaux 0x1ffe0000 0

  4. Append “clk_ignore_unused” in u-boot “mmcargs” env, before booting linux.

  5. Boot to linux.

  6. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
MCIMX93W-EVK
Hardware requirements
  • USB Type-C cable

  • MCIMX93W-EVK board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a USB Type-C cable between the host PC and the J1401 USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW301 to power on the board

  3. Boot Linux BSP to u-boot, and load M core image from SD card to run. (Put the image into SD card before.) => load mmc 1:1 0x80000000 /rpmsg_lite_str_echo_rtos.bin => cp.b 0x80000000 0x201e0000 0x20000 => bootaux 0x1ffe0000 0

  4. Append “clk_ignore_unused” in u-boot “mmcargs” env, before booting linux.

  5. Boot to linux.

  6. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
MCIMX93-QSB
Hardware requirements
  • USB Type-C cable

  • MCIMX93-QSB board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a USB Type-C cable between the host PC and the J1401 USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW301 to power on the board

  3. Boot Linux BSP to u-boot, and load M core image from SD card to run. (Put the image into SD card before.) => load mmc 1:1 0x80000000 /rpmsg_lite_str_echo_rtos.bin => cp.b 0x80000000 0x201e0000 0x20000 => bootaux 0x1ffe0000 0

  4. Append “clk_ignore_unused” in u-boot “mmcargs” env, before booting linux.

  5. Boot to linux.

  6. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
IMX943-ORANGEBOX
Hardware requirements
  • Micro USB cable

  • IMX943-ORANGEBOX board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a micro USB cable between the host PC and the J15(FTDI_DEBUG) USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW1(SYS_PWR) to power on the board

  3. Boot Linux BSP to u-boot, and load M core image from SD card to run. (Put the image into SD card before.) => load mmc 1:1 0x80000000 /rpmsg_lite_str_echo_rtos.bin => cp.b 0x80000000 0x201e0000 0x10000 => bootaux 0x201e0000 0

  4. Append “clk_ignore_unused” in u-boot “mmcargs” env, before booting linux.

  5. Boot to linux.

  6. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side
IMX943-EVK
Hardware requirements
  • Micro USB cable

  • IMX943-EVK board

  • J-Link Debug Probe

  • 12V~20V power supply

  • Personal Computer

Board settings

The Multicore RPMsg-Lite string echo project does not call for any special hardware configurations. Although not required, the recommendation is to leave the development board jumper settings and configurations in default state when running this demo.

Prepare the Demo
  1. Connect a micro USB cable between the host PC and the J15(FTDI_DEBUG) USB port on the target board. Open two serial terminals for A Core and M Core with the following settings:

    • 115200 baud rate

    • 8 data bits

    • No parity

    • One stop bit

    • No flow control (e.g. /dev/ttyUSB0~3, /dev/ttyUSB2 for A Core, /dev/ttyUSB3 for M Core)

  2. Connect 12V~20V power supply and J-Link Debug Probe to the board, switch SW1(SYS_PWR) to power on the board

  3. Boot Linux BSP to u-boot, and load M core image from SD card to run. (Put the image into SD card before.) => load mmc 1:1 0x80000000 /rpmsg_lite_str_echo_rtos.bin => cp.b 0x80000000 0x201e0000 0x10000 => bootaux 0x201e0000 0

  4. Append “clk_ignore_unused” in u-boot “mmcargs” env, before booting linux.

  5. Boot to linux.

  6. After login, make sure imx_rpmsg_tty kernel module is inserted (lsmod) or insert it (modprobe imx_rpmsg_tty).

Running the demo

After the boot process succeeds, the ARM Cortex-M33 terminal displays the following information:

RPMSG String Echo FreeRTOS RTOS API Demo...

Nameservice sent, ready for incoming messages...

After the Linux RPMsg tty module was installed, the ARM Cortex-M33 terminal displays the following information:

Get Messgae From Master Side : "hello world!" [len : 12]

The user can then input an arbitrary string to the virtual RPMsg tty using the following echo command on Cortex-A terminal:

echo test > /dev/ttyRPMSG<num>
<num> here is the allocated ttyRPMsg channel number. Please find out the number in the file system by "ls" command.
Log below shows the output of the RPMsg-Lite str echo demo in the terminal window:

On the M33 terminal, the received string content and its length is output, as shown in the log.

Get Message From Master Side : "test" [len : 4]
Get New Line From Master Side