RPMSG on iMX8's M7 without an RTOS?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

RPMSG on iMX8's M7 without an RTOS?

Jump to solution
1,857 Views
EdSutter
Senior Contributor II

I'm working with an iMX8MPlus.

I've built/ran the rpmsg_lite_str_echo_rtos example and managed to communicate with it from Linux; however, I don't want FreeRTOS in the way.  Are any examples for RPMSG available that don't use FreeRTOS?

0 Kudos
Reply
1 Solution
1,838 Views
AldoG
NXP TechSupport
NXP TechSupport

Hello,

No, we do not have examples for RPMSG without FreeRTOS.

Best regards,
Aldo.

View solution in original post

0 Kudos
Reply
3 Replies
1,789 Views
btessele
Contributor II

The rpmsg-lite has a bm implementation, so you could build your application and point it to use the bm instead of the freertos. The problem is that the rpmsg-lite relies on the env_*_queue api which is implemented only for freertos. That said, you could use the same example but change your CMakeLists.txt to include the rpmsg-lite bm environment. In my case, I added two .cmake files

middleware/multicore/middleware_multicore_rpmsg_lite_bm_MIMX8ML8.cmake
middleware/multicore/middleware_multicore_rpmsg_lite_imx8mp_m7_bm_MIMX8ML8.cmake

to build the bm environment. Then you also need to change your project's config.cmake, remove the rpmsg_lite_freertos config and add the bm:

set(CONFIG_USE_middleware_multicore_rpmsg_lite_bm_MIMX8ML8 true)

Lastly, the flags.cmake contains the RTOS flag that should be removed:

-DSDK_OS_FREE_RTOS \

With some fixes here and there you will be able to compile, but then it will lack the queue implementation which I pointed before. Here you can find more info: https://community.toradex.com/t/bare-metal-rpmsg-on-verdin/18035/3 

1,786 Views
EdSutter
Senior Contributor II

Hi @btessele,

Thanks for responding!  After I got the "we don't support that" response from NXP folk I did essentially what you suggested... I rebuilt with the bm_*** file, finding that there was no queue API, so I just wrote a simple circular buffer in C and inserted that into the bm_*** file.

Not sure why NXP didn't provide that, but it was simple enough to add..

Regards,

Ed 

1,839 Views
AldoG
NXP TechSupport
NXP TechSupport

Hello,

No, we do not have examples for RPMSG without FreeRTOS.

Best regards,
Aldo.

0 Kudos
Reply