Compared with the RT10xx series, the i.MX RT117x has an additional M4 core, which makes multi-core collaboration possible. The general practice of multi-core operation is to run in independent program data space and communicate through a shared memory space. For example, in the official SDK routine, the M7 code runs in Flash, while the M4 code runs in SRAM, and they communicate from each other via a shared SRAM space, which can ensure the maximum performance. However, during the development stage, customers may need to put both the M7 and M4 codes in external SDRAM for debugging. Although this will affect some performance, it will not perform too many erase and write operations on the flash, which also has certain practical significance.
The following is a detailed explanation of how to load a dual core project to SDRAM for debugging. The following example comes from the official SDK dual core demo - rpmsg_lite_pingpong .
Because the default system boots from the M7 core, the usual practice is to load the M4 code by the M7, and then kick off the M4 core by M7 as well. Therefore, most of the changes are in the M7 project settings. The specific steps are as follows:
--cachelib libm7_cache.so