How to utilize the multiple ARM Cortex A7 cores on iMX7 with WINCE


We have designed a Native application running on WINCE7 on the Coloibri iMX7D SoM.

The iMX7 SoC has 2 Cortex A7 cores. Our application too has multiple threads. The application demands low latency from the software, for which we have a dedicated thread.
There are also communication threads that wait or incoming data over TCp sockets from connected clients.

Is it possible to assign threads through code to specific cores to distribute and make use of the parallel processing available in the SoC.

I could then make the rest of the application run on one core whereas the interrupt thread on other A7 core.

Which version of WinCE you are using? You can try SetThreadAffinityMask. However it’s usually not a good idea to set the affinity because by not setting it, we will allow the scheduler to run our thread on the first core that is available, thereby improving the latency.

Alex, we are using WINCE700.

Can I at runtime while my application is running in the system check which thread is running on which core?

Hi @kapeed,

Please check this utility - Toradex Task Manager | Toradex Developer Center.

At that utility, you can check the “affinity” of the process/thread you are looking for.

Best regards,
André Curvello