VAR-SOM-MX7 FreeRTOS for M4 PingPong demo
From Variscite Wiki
A real case: RPMsg Ping-Pong FreeRTOS demo
Build the demo
cd ~/var-som-mx7_m4-freertos/freertos-variscite/examples/var-som-mx7_m4 cd demo_apps/rpmsg/pingpong_freertos cd armgcc export ARMGCC_DIR=~/var-som-mx7_m4-freertos/gcc-arm-none-eabi-5_4-2016q3 ./build_all.sh > /dev/null
Copy the demo binary to FAT32 partition of boot SD card
cp release/rpmsg_pingpong_freertos_example.bin cp /media/BOOT
Gracefully eject the SD card from host machine, plug it in the EVK.
Connect UART2 using pins J5.5 (RX) and J5.7 (TX) as 115200 8N1 for Cortex-M4 debug UART.
Power on on the board and stop the boot process pressing "Enter" key.
Setup and save uboot environment:
setenv use_m4 yes setenv fdtfile undefined setenv m4bootdata 0x007F8000 setenv m4image rpmsg_pingpong_freertos_example.bin saveenv
Start Cortex-M4 demo
run m4boot
After the boot process succeeds, the Cortex-M4 terminal displays the following information:
RPMSG PingPong FreeRTOS RTOS API Demo... RPMSG Init as Remote
Start Cortex-A7 core
run bootcmd
Then login and load the pingpong module:
modprobe imx_rpmsg_pingpong
After the Linux ping-pong master side module is installed, the Cortex-M4 terminal displays something like:
Name service handshake is done, M4 has setup a rpmsg channel [1 ---> 1024] Get Data From Master Side: 0 Get Data From Master Side: 11 Get Data From Master Side: 22 Get Data From Master Side: 33 Get Data From Master Side: 44 ......