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