Programming the M4 on an iMX7

We are working on a new project that will use Linux on an IMX7. I can program and debug code written for the A7 using VS Code, but, from what I read from the Toradex site, the M4 will require a JTAG debugger and an SD card to save the binary. Also Uboot needs to be modified for the M4 to run on power up. Is my understanding correct? Is there a link to a Toradex site that explains how to use the M4 on an IMX7?

Running an M4 application is much easier than you expect. The basic usage of the M4 is explained in the following developer page article:

Answering your questions in a short form:

JTAG

JTAG is not required to load and run any firmware on the M4. JTAG is recommended to debug your application, but if you are fine with printf-debugging, you don’t need it.

Building the application

The easiest you can do is just run the build script build_all.bat or build_all.sh. You can find these scripts in the folder armgcc which is present in each of the provided sample applications.

Storing the applicaton

The M4 applicaton can be stored on any storage device, which is accessible by the bootloader. This includes

  • external SD card
  • boot partition of the on-module eMMC
  • boot partition of the on-module NAND flash

Starting the application

To start the M4 application, U-Boot does not need any modification.
It is sufficient to modify the U-Boot configuration - add two instructions to the boot commands in order to

  1. load the M4 application into memory, and
  2. start the M4

Regards, Andy