Hello!
I try to run the hello_world example, witch I build with eclipse, on the cortex M4 core on the i.MX7 Dual, but it doesn´t work.
First I build the project using the armgcc toolchain and the .bat-script included in BSP. I loaded the .bin-file on the M4 core successfully and it works fine.
Afterwards I imported the project to Eclipse and followed some instructions, which I found here, to set all properties correctly. I was able to build the project. But when I try to load it into the TCM of the cortex M4 and boot the core nothing happens.
Then I changed the linker script at properties-> C/C++ Build -> settings -> GNU ARM Cross C Linker -> General to MCIMX7D_M4_ocram.ld and tried to boot the same application from the OCRAM instead of the TCM, witch surprisingly works as it should.
So what am I doing wrong, when using the MCIMX7D_M4_tcm.ld linker script?
Thanks for your help.
Robin
Solved! Go to Solution.
Hi Robin
may be helpful to check differencies between memories described on
AN5317 Loading Code on Cortex-M4 from Linux for the i.MX 6SoloX and i.MX7Dual/7Solo Application Processors
sect.3.1. On-chip memory view from each ARM core on the i.MX 7Dual/7Solo
https://www.nxp.com/docs/en/application-note/AN5317.pdf
If this will not help one can try to debug code step by step with jtag.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Robin
may be helpful to check differencies between memories described on
AN5317 Loading Code on Cortex-M4 from Linux for the i.MX 6SoloX and i.MX7Dual/7Solo Application Processors
sect.3.1. On-chip memory view from each ARM core on the i.MX 7Dual/7Solo
https://www.nxp.com/docs/en/application-note/AN5317.pdf
If this will not help one can try to debug code step by step with jtag.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Just solved the original problem, i am running into the next one. The applications on the M4 start as they should now. Example projects as hello_world and the blinking_imx_demo run well. When I try to run the pingpong RPMsg demo the application starts with the prompt
RPMSG PingPong FreeRTOS RTOS API Demo...
RPMSG Init as Remote
as expected. But when I boot linux on the A7 and start the corresponding mod imx_rpmsg_pingpong nothing happens on the M4 side.
The example works fine, when I build the project using the ARM gcc toolchain with the .bat-file from the BSP, but it doesn't work as described above, when I build it with eclipse. Any suggestions what configurations I need to change in eclipse?
Hi Robin,
I have the exact same problem, did you find a solution?
Regards, Betty
Hi Bettina,
unfortunately I could not find an eclipse-based sloution.
As a work around I use eclipse for developing and modified the makefiles from the examples manually to build the project.
Hi Robin,
Thanks for the answer. I did something similar and used KDevelop.
Cheers
Betty
Thanks for your answer igor. I used the wrong memory locations indeed. I got confused by using the big memory map in IMX7DRM, especial because there are two memory regions for the OCRM on the M4 at 0x0090_0000 and 0x2020_0000. Are these, by the way, just two different addresses for the same physical memory? The short list with the memory locations in the application note helped to get the right overview.