How to make use of Eclipse CDT to build for Cortex M4(Colibri imx7D) on Windows host


How to use one of the freely available IDEs and cross compilation tool-chains to develop applications for the CortexM4 core of the Colibri iMX7D? Ideally:

  • freely available ARM-GCC compiler toolchain with
  • Eclipse CDT or DS-5 community edition IDEs to

on a Windows host

This is critical for us since the reason for selecting Colibri iMX7D was to make use of the Cortex M4 and FreeRTOS.

Can Toradex provide an application note explaining how to build applications for Cortex M4 from a Windows host?

Dear @kapeed

As an introduction I would like to point out, that using the integrated M4 adds complexity to your project, compared to using an external M4 chip.
There are significant advantages, such as high-speed communication between the M4 and A7 core, but on the other side you need to manage the shared resources, and go for development tools which support this special setup.

Regarding the toolchain. Here is an extract from the nxp release notes:

The FreeRTOS BSP 1.0.1 was compiled and tested with these development tools:

  • IAR Embedded Workbench for ARM architecture version 7.40.3
  • Makefiles support with GCC revision 4.9-2015-q1-update from ARM Embedded
  • ARM Development Studio 5 (DS-5™) version 5.20.1 (32 bit)
  • Lauterbach TRACE32 PowerView for ARM architecture version R.2014.09.000058270

The safe way would be to use exactly the same tools.

A Windows-based toolchain can be downloaded from ARM’s web site:

We did not test this toolchain at Toradex so far.

Regards, Andy

Hi Andy,

That does not sound very encouraging. Even with regards to the development tools, these are too expensive except for the ARM GCC tool-chain.

Have you had a look at this link: Tutorial: Building FreeRTOS Applications for ARM Cortex-M4 on i.MX7 with Eclipse | MCU on Eclipse ?

It uses the free/complementary Kinetis Design Studio to build the Application+FreeRTOS code. We have been able to successfully build one of the demo apps that came with the Free RTOS repo. The Kinetis Design studio supports Open OCD JTAG debuggers, J-Link debuggers so my guess at this point is that debugging should not be a problem.

So once the code building is taken care of for the Cortex M4, how sorted out is the process of loading the binary, debugging, communicating between the cores?

Dear @kapeed

Thank you for the link to the Tutorial about Building FreeRTOS Applications for ARM Cortex-M4 on i.MX7 with Eclipse. I will check whether it makes sense that we create a similar tutorial, or just place a link on our developer page.

For loading the binary, and communication between A7 and M4 core, there is support in our Rpmsg Library. You can download the libraries here.
There is no particular debug support included.

Regards, Andy

Thanks Andy, we are waiting for the revision 2.2 of the library

Hi Andy, The download link has the Library Version 2.1 available for download.

If I understood you correctly here ( what we need is the Version 2.2 of the library, is that correct?

Any updates regarding the release of the version 2,2 of the library?

Dear @kapeed
You are correct, you need V2.2. It should be available for download by tomorrow.
Regards, Andy

Thanks a lot for the update Andy. We are eagerly looking forward to the release.

Dear @kapeed
We finally released the Toradex CE Libraries V2.2.
Regards, Andy

Hi Andy,

Thanks for this update.
Is there any plan to release new WinCE Image/SDK for Toradex CE Libraries V2.2 or Is it compatible with previously released WinCE image/SDK ?

With this new library we are able to address one issue i.e. getting Rpmsg handle of the below mentioned issue:
Unable to Load Firmware to Cortex M4 core on iMX 7 using Rpmsg library on WinCE smart device application

But we stuck at ‘Firmware’ and 'ChannelName ’ in Rpmsg configuration settings. We need clarity on both of these parameters and How to use them.

Dear @bipin7301
The library V2.2 is compatible with previous OS images.
For the configuration settings, please refer to the community post linked above.
Regards, Andy