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
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