Hi jingyang xie,
you can take a look to RPMsg with FreeRTOS.
You can download FreeRTOS for IMx6SX here:
http://www.nxp.com/imx6SX > Software & Tools tab
FreeRTOS™ BSP 1.0.1 for the i.MX 6SoloX ARM® Cortex®-M4 core
You will need the following documentation:
i.MX_Linux_User's_Guide.pdf
3 Basic Terminal Setup
The USB to serial driver can be found under www.ftdichip.com/Drivers/VCP.htm
i.MX_Linux_Reference_Manual.pdf
51 Remote Processor Messaging (RPMsg)
Getting_Started_with_FreeRTOS_BSP_for_i.MX_6SoloX.pdf
6 Running Application with U-Boot
FreeRTOS_BSP_for_i.MX_6SoloX_Demo_User’s_Guide.pdf
10 RPMsg Ping-Pong FreeRTOS Demo with RTOS API
Once you installed FreeRTOS build rpmsg demos to generate .bin file. E.g. C:\NXP\FreeRTOS_BSP_1.0.1_iMX6SX\examples\imx6sx_sdb_m4\demo_apps\rpmsg\pingpong_freertos\<compiler>
Then boot in A9 core and stop in uboot to configure the M4 application. I have made in 2 different ways:
ONE
env default -a
setenv fdt_file imx6sx-sdb-m4.dtb
setenv m4image 'rpmsg_pingpong_freertos_example.bin'
setenv run_m4_tcm 'if run loadm4image; then cp.b ${loadaddr} 0x7f8000 0x8000; bootaux 0x7f8000; fi'
setenv bootcmd "run run_m4_tcm;${bootcmd}"
setenv mmcargs "${mmcargs} uart_from_osc"
saveenv
boot
TWO
env default –a
setenv m4image 'rpmsg_pingpong_freertos_example.bin'
setenv fdt_file imx6sx-sdb-m4.dtb
setenv bootcmd "run m4boot;${bootcmd}"
setenv mmcargs "${mmcargs} uart_from_osc"
run update_m4_from_sd
saveenv
boot
Finally launch M4 application from A9 cmd:
$ cd /lib/modules/4.1.15-1.2.0+g77f6154/kernel/drivers/rpmsg
$ insmod imx_rpmsg_pingpong.ko
$ rmmod imx_rpmsg_pingpong
Regards,
Carlos
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------