Hello everyone,
I'm trying to develop an RPMSG application to communicate between cortex A and cortex M of the i.MX93 EVK and be able to pass a data structure from cortex M to cortex A.
To develop it, I code on VS Code with the MCU Xpresso extension and use the GNU Arm toolchain. I use a SEGGER J Link probe to debug cortex M.
I am basing myself on the rpmsg_lite_pingpong_rtos demo provided in SDK_MCIMX93-EVK.
To be able to run in debug completely the RPMSG pingpong demonstration, I need to load the linux module imx_rpmsg_pingpong. I therefore set up debugging of the Cortex-M33 while the Cortex-A55 is under Linux, as specified in AN14120.
So I tried to debug the pingpong demo but I run into a problem: the program waits indefinitely in the rpmsg_lite_wait_for_link_up() function.
When I load on the cortex M the rpmsg_lite_pingpong_rtos.elf file built on VS Code, using remoteproc, it works perfectly. Only in debug mode do I encounter this problem.
I have seen on other forum topics the same problem encountered with IMX8MM cards, but after reading those topics, I have not been able to find a solution.
Could someone please explain why RPMsg doesn't work when debugged, and help me solve this ?
Thanks in advance.
Hello Aldo,
Thanks for your answer.
I have read some of the Variscite Wiki developers guides for MCUXpresso development with VSCode.
The link you give me is for DART-MX8M-MINI, it's the only guide that details the specific case of debugging RPMsg demos.
In the article, for the example, they debug pingpong demo mapped in DDR. Is it necessary for the RPMsg demo to be mapped to DDR in order to debug its ?
Best regards,
Hello,
For this purpose even a guide for another processor should work, it only changes things like addresses, available peripherals, examples, etc.
Also, please note that Ping-pong example is only available on DDR target.
Best regards/Saludos,
Aldo.
Hello,
you may refer to the following link:
https://variwiki.com/index.php?title=MCUXpresso_VSCode
Best regards/Saludos,
Aldo.