I’m currently designing my embedded device, which includes a Toradex SoM (running a Qt5-based GUI on Embedded Linux) interfacing with a SAME70Q21 32-bit MCU. The MCU is used for all time-sensitive hardware interfacing (SPI, I2C, UART/USART, CAN, GPIO, etc.), and for data acquisition and temporary buffer storage (64 inputs @ 1000 samples per second per input).
This approach seems solid, but I would be remiss if I didn’t also investigate the potential for using one of the Toradex SoMs which includes a discrete MCU (e.g. Colibri iMX7D). I believe the Cortex M4 @ 200MHz should be sufficient for my needs, but I’m concerned about only having a dual core ARM processor for running the Embedded Linux OS and Qt5 GUI. Short of buying a range of Colibri SoMs for testing on the Colibri evaluation board, is there any discernible means for determining the performance of a given application on a specific SoM? To clarify, does the Cortex M4 MCU on the iMX7D have FPU?
If the dual core ARM is sufficient and the M4 on the iMX7D has FPU, then my last consideration is interfacing. Do the ARM processor and MCU have shared memory? I.e. will my ARM userspace application be able to access data stored in memory/registers of the MCU (DMA?)?
Any guidance, suggested reading or experience on this matter would be greatly appreciated. I’m acutely aware that the upcoming Colibri iMX8X is the perfect solution for my application, but unfortunately I don’t think I can wait any longer for its release.